Coccinelle release-1.0.0-rc11
authorCoccinelle <cocci@diku.dk>
Mon, 12 Mar 2012 12:19:05 +0000 (13:19 +0100)
committerRene Rydhof Hansen <rrh@cs.aau.dk>
Mon, 12 Mar 2012 12:19:05 +0000 (13:19 +0100)
** Language:
- Addition of initializer list metavariables.  Thanks to Michael Stefaniuc
  for noticing the need for them.
- Allow multiple position variables per token
- ++ can now be associated with - code
- Allow /* */ comments as smpl comments, not only as + code
- Add support for && (label addresses)
- local idexpression metavariable no longer matches static local x
- Consider using to be a comment in C++ code.  Patch submitted by Jani Monoses.
- Command line cocci
- print_main etc for ocaml Coccilib
- =~ not ~= is used to indicate a regular expression constraint on an
  identifier.  And !~ for a nonmatch.
- allow long double, short int, long int, and long long int in SmPL code.
- gcc constructors allowed in SmPL.  Thanks to Uwe Kleine-Koenig for
  pointing out the problem.
- Allow ! to appear before () in depends.  Thanks to SF Markus Elfring for
  noticing the problem.
- Can add code containing #pragma or #line.
- Multicharacter command-line options now begin with -- and contain -
  rather than _.
- Allow multiple types of hidden metavariables, each preceded by @.
  Position variables can be attached to these.
- Python code now receives a structure containing a list of matched
  elements for list metavariables.  Thanks to Michael Stefaniuc for
  suggesting this features.
- Python code now receives expressions and identifiers as ordinary strings,
  not as elements of specific structures.

** Features:
- Preserve spacing before // comments when not at the beginning of a line
- Adjusted parsing of endif to put it after jump code
- Improve warning message when using -use_cache
- More helpful initial value for exported variables in python
- Support - on expression nests
- Better handling of the case of a matched declaration that should only
  be replaced by other top level things.
- Allow a semantic patch beginning and ending with braces to match the
  complete body of a function if the braces are not removed and if nothing
  is added before the first brace or after the last one.
- Add -cache_prefix option, to specify where to put cached files.
- Allow module_init(foo); to match module_init(foo) (or likewise for any
  declarer), when no transformation is specified on the semicolon.
- Add Coccilib.exit() for ocaml code and cocci.exit() for python code,
  to abort the treatment of the current file.
- Don't multiply print the same patch for the same file
- Drop date in diff
- Don't repeat smpl type warnings
- -sp_file/-cocci_file are now optional.  If not present an argument that
  ends in .cocci is assumed to be the name of the file containing the
  semantic patch.
- Allow limiting the size of a named cache using -cache_limit
- Cache name specified with -cache_prefix is extended according to the
  index (parallelism), if any.
- Allow multi-character constants in C code and SmPL code.  Thanks to Kamil
  Pilch for pointing out the problem.
- Better parsing of K&R C functions.  No longer convert all parameters to
  typedefs.
- Implement newes as a hash table, for more efficiency on big sets of
  environments.
- A local variable that is declared without a type is not considered to be
  a local variable.  Actually, such a variable is probably really a macro
  that expends to a declaration, and this macro is not the variable name.
- Allow iteration to make modifications when the modifications are done
  inplace.
- -debug gives information about defined virtual rules and about virtual
  identifier bindings.
- no more crashing on c++-like code without the c++ argument.
- dependencies can have ! on ()
- Give ocaml code access to Flag and thus the current file name.
- Slightly more efficient handling of lists.
- Slightly better error message in the case of inconsistent paths
- Improve limited size caching

** Bugfix:
- Corrected parsing of script strings delimited by a single quote.  Thanks
  to Eugeniy Meshcheryakov for reporting the problem.
- Improved indentation of added ifdefs.
- Allow added comments and #ifdefs to precede other added code.  Thanks to
  Jani Monoses for noticing the problem.
- Corrected failure to due missing ocamlfind. Thanks to Derek M. Jones for
  reporting the problem.
- Allow fake nodes to be - in the allminus case, to drop tokens related to
  a function definition or forward declaration but before the first code
  mentioned in the semantic patch.
- Drop __init etc when deleting a whole function.
- Cause appropriate newlines to be preserved when multiple matches (trees)
  contain adjacent modifications derived from the same SmPL code.
- check_meta takes into account fresh identifier seed information.
- Types for worth-trying optimization should not be followed by space
- Improved filtering of result of matching atomic patterns
- Drop positions before creating function prototype rules
- Adjust position of { introduced by adding multiple statements in a
  single-statement position
- Drop newline after function call ( when all arguments on that line are
  eliminated
- Accept removal of a single declaration, replaced by arbitrary,
  non-declaration code
- smpl_spacing takes into account newlines, indentation
- Improved prevention of transformations on toplevel { ... } from causing
  changes outside function boundaries; also outside ifs, whiles, etc.
  Changes are still allowed on { ... } present for other reasons.
- Fix bug in include_match that caused everything to halt when all matches
  were discarded
- Don't call Insert_plus on rules that cannot be evaluated due to failed
  dependencies.
- Allow variable declaration right after a case in switch.
- The top of a loop is also after the body of a loop, for ... in loop body
- Do not anchor Str regexp at the beginning of the string to check
- Type annotation for C code uses most recent env for typedefs when
  possible.  Thanks to Andrea Canciani for pointing out the problem.
- Pretty print pointer types without a trailing space.  Thanks to Michael
  Stefaniuc for pointing out the problem.
- Propagate dependencies further in get_constants2
- Make lexer more dos friendly
- slightly better handling of long long
- Strip constraints from metavariables in function prototype treatment
  before comparison, due to incomparability of pcre regexps.
- Fixed obsolete regexp doc, thanks to Dmitry Osmakov
- Improved x || ... || y to avoid double modification
- Transparently allow \( \| and \) to be on lines beginning with -.  The -
  has no effect.
- Remove memory leak related to pr2_once management.  Thanks to Robert
  Gomulka for helping to solve the problem.  Don't use once hashtable if
  messages won't be printed anyway.
- Change the type of subtraction mixing pointer and array to have int result.
  Thanks to Robert Gomulka for noticing the problem.
- Fix interpretation of dependencies in the presence of virtual rules.
  Ignore constraints on inherited position metavariables in a rule that
  will be ignored.
- Better support meta iterator and meta declarer tokens, and symid tokens.
- Better indentation after added noindent.
- Fixed length bug in the treatment of structures.
- Allow inheriting declaration/field metavariables.
- Don't drop spaces after parentheses in when no minus code present.
  Thanks to Terry Wilson for reporting the problem.
- Keep inherited metavariables in asttomember (preprocessing for matching)
- allminus for types, to allow removing const, not just matching it
- improved pretty printing when something is added before a closed brace
- Allow matching on nameless structs.  Thanks to Ron Minnich for reporting
  the problem.
- Pretty printing of const/volatile arrays in smpl code.

261 files changed:
Makefile
Makefile.release
changes.txt
cocci.ml
cocci.mli
commons/common.ml
configure
ctl/Makefile
ctl/ast_ctl.ml
ctl/ctl_engine.ml
ctl/ctl_engine.mli
ctl/flag_ctl.ml
ctl/pretty_print_ctl.ml
ctl/pretty_print_ctl.mli
ctl/test_ctl.ml
ctl/wrapper_ctl.ml
ctl/wrapper_ctl.mli
docs/manual/cocci_syntax.tex
docs/manual/main_grammar.pdf
docs/manual/manual.pdf
docs/manual/options.pdf
docs/manual/spatch_options.tex
engine/Makefile
engine/asttoctl.ml
engine/asttoctl.mli
engine/asttoctl2.ml
engine/asttoctl2.mli
engine/asttomember.ml
engine/asttomember.mli
engine/c_vs_c.ml
engine/c_vs_c.mli
engine/check_exhaustive_pattern.ml
engine/check_reachability.ml
engine/check_reachability.mli
engine/cocci_vs_c.ml
engine/cocci_vs_c.mli
engine/ctlcocci_integration.ml
engine/ctlcocci_integration.mli
engine/ctltotex.ml
engine/ctltotex.mli
engine/flag_engine.ml
engine/flag_matcher.ml
engine/isomorphisms_c_c.ml
engine/lib_engine.ml
engine/lib_matcher_c.ml
engine/lib_matcher_c.mli
engine/main.ml
engine/pattern_c.ml
engine/pattern_c.mli
engine/postprocess_transinfo.ml
engine/postprocess_transinfo.mli
engine/pretty_print_engine.ml
engine/pretty_print_engine.mli
engine/sgrep.ml
engine/transformation_c.ml
engine/transformation_c.mli
flag_cocci.ml
globals/Makefile
globals/config.ml.in
globals/flag.ml
globals/iteration.ml
globals/iteration.mli
globals/regexp.ml [changed from symlink to file mode: 0644]
globals/regexp.ml.in [new file with mode: 0644]
globals/regexp_pcre.ml
globals/regexp_str.ml
main.ml
ocaml/Makefile
ocaml/prepare_ocamlcocci.ml [changed from symlink to file mode: 0644]
ocaml/prepare_ocamlcocci.ml.in [new file with mode: 0644]
parsing_c/ast_c.ml
parsing_c/flag_parsing_c.ml
parsing_c/parse_c.ml
parsing_c/parser_c.mly
parsing_c/parsing_hacks.ml
parsing_c/pretty_print_c.ml
parsing_c/pretty_print_c.mli
parsing_c/test_parsing_c.ml
parsing_c/type_annoter_c.ml
parsing_c/type_c.ml
parsing_c/unparse_c.ml
parsing_c/unparse_cocci.ml
parsing_c/visitor_c.ml
parsing_cocci/Makefile
parsing_cocci/adjacency.ml
parsing_cocci/adjacency.mli
parsing_cocci/adjust_pragmas.ml
parsing_cocci/adjust_pragmas.mli
parsing_cocci/arity.ml
parsing_cocci/arity.mli
parsing_cocci/ast0_cocci.ml
parsing_cocci/ast0_cocci.mli
parsing_cocci/ast0toast.ml
parsing_cocci/ast0toast.mli
parsing_cocci/ast_cocci.ml
parsing_cocci/ast_cocci.mli
parsing_cocci/check_meta.ml
parsing_cocci/check_meta.mli
parsing_cocci/comm_assoc.ml
parsing_cocci/comm_assoc.mli
parsing_cocci/command_line.ml
parsing_cocci/command_line.mli
parsing_cocci/compute_lines.ml
parsing_cocci/compute_lines.mli
parsing_cocci/context_neg.ml
parsing_cocci/context_neg.mli
parsing_cocci/data.ml
parsing_cocci/data.mli
parsing_cocci/disjdistr.ml
parsing_cocci/disjdistr.mli
parsing_cocci/flag_parsing_cocci.ml
parsing_cocci/free_vars.ml
parsing_cocci/free_vars.mli
parsing_cocci/function_prototypes.ml
parsing_cocci/function_prototypes.mli
parsing_cocci/get_constants.ml
parsing_cocci/get_constants.mli
parsing_cocci/get_constants2.ml
parsing_cocci/get_constants2.mli
parsing_cocci/get_metas.ml [new file with mode: 0644]
parsing_cocci/get_metas.mli [new file with mode: 0644]
parsing_cocci/id_utils.ml
parsing_cocci/id_utils.mli
parsing_cocci/index.ml
parsing_cocci/index.mli
parsing_cocci/insert_plus.ml
parsing_cocci/insert_plus.mli
parsing_cocci/iso_compile.ml
parsing_cocci/iso_compile.mli
parsing_cocci/iso_pattern.ml
parsing_cocci/iso_pattern.mli
parsing_cocci/lexer_cli.mll
parsing_cocci/lexer_cocci.mll
parsing_cocci/lexer_script.mll
parsing_cocci/main.ml
parsing_cocci/merge.ml
parsing_cocci/merge.mli
parsing_cocci/parse_aux.ml
parsing_cocci/parse_cocci.ml
parsing_cocci/parse_cocci.mli
parsing_cocci/parser_cocci.mly
parsing_cocci/parser_cocci_menhir.ml
parsing_cocci/parser_cocci_menhir.mli
parsing_cocci/parser_cocci_menhir.mly
parsing_cocci/plus.ml
parsing_cocci/plus.mli
parsing_cocci/pretty_print_cocci.ml
parsing_cocci/pretty_print_cocci.mli
parsing_cocci/safe_for_multi_decls.ml
parsing_cocci/safe_for_multi_decls.mli
parsing_cocci/semantic_cocci.ml
parsing_cocci/simple_assignments.ml
parsing_cocci/simple_assignments.mli
parsing_cocci/single_statement.ml
parsing_cocci/single_statement.mli
parsing_cocci/test.cocci
parsing_cocci/test2.cocci
parsing_cocci/test_exps.ml
parsing_cocci/test_exps.mli
parsing_cocci/top_level.ml
parsing_cocci/top_level.mli
parsing_cocci/type_cocci.ml
parsing_cocci/type_cocci.mli
parsing_cocci/type_infer.ml
parsing_cocci/type_infer.mli
parsing_cocci/unify_ast.ml
parsing_cocci/unify_ast.mli
parsing_cocci/unitary_ast0.ml
parsing_cocci/unitary_ast0.mli
parsing_cocci/unparse_ast0.ml
parsing_cocci/unparse_ast0.mli
parsing_cocci/visitor_ast.ml
parsing_cocci/visitor_ast.mli
parsing_cocci/visitor_ast0.ml
parsing_cocci/visitor_ast0.mli
parsing_cocci/visitor_ast0_types.ml
popl/Makefile
popl/ast_popl.ml
popl/asttopopl.ml
popl/asttopopl.mli
popl/insert_befaft.ml
popl/insert_befaft.mli
popl/insert_quantifiers.ml
popl/insert_quantifiers.mli
popl/popl.ml
popl/popl.mli
popl/popltoctl.ml
popl/popltoctl.mli
popl/pretty_print_popl.ml
popl/pretty_print_popl.mli
popl09/Makefile
popl09/ast_popl.ml
popl09/asttopopl.ml
popl09/asttopopl.mli
popl09/flag_popl.ml
popl09/insert_quantifiers.ml
popl09/insert_quantifiers.mli
popl09/popl.ml
popl09/popl.mli
popl09/popltoctl.ml
popl09/popltoctl.mli
popl09/pretty_print_popl.ml
popl09/pretty_print_popl.mli
python/Makefile
python/coccilib/elems.py
python/no_pycocci.ml
python/pycocci.ml.in [new file with mode: 0644]
python/pycocci.mli
python/pycocci_aux.ml
python/pycocci_aux.mli
python/yes_pycocci.ml
release.nix [new file with mode: 0644]
scripts/extract_c_and_res.pl
scripts/extract_examples.pl
scripts/extractor_README.pl
scripts/gather_failed.pl
scripts/readme.pl
scripts/stat_directories.pl
scripts/stat_directories_complete.pl
scripts/stat_directory_complete.pl
testing.ml
testing.mli
tests/SCORE_expected.sexp
tests/SCORE_expected.sexp.save [deleted file]
tests/SCORE_expected_orig.sexp
tests/const1bis.cocci
tests/constrem.c [new file with mode: 0644]
tests/constrem.cocci [new file with mode: 0644]
tests/constrem.res [new file with mode: 0644]
tests/ifadd.c [new file with mode: 0644]
tests/ifadd.cocci [new file with mode: 0644]
tests/ifadd.res [new file with mode: 0644]
tests/indecl.c [new file with mode: 0644]
tests/indecl.cocci [new file with mode: 0644]
tests/kr.c [new file with mode: 0644]
tests/kr.cocci [new file with mode: 0644]
tests/kr.res [new file with mode: 0644]
tests/metaline.c [new file with mode: 0644]
tests/metaline.cocci [new file with mode: 0644]
tests/metaline.res [new file with mode: 0644]
tests/tdnl.c [new file with mode: 0644]
tests/tdnl.cocci [new file with mode: 0644]
tests/tdnl.res [new file with mode: 0644]
tests/twomatch.c [new file with mode: 0644]
tests/twomatch.cocci [new file with mode: 0644]
tests/twomatch.res [new file with mode: 0644]
tools/Makefile
tools/alloc_free.ml
tools/bridge.ml
tools/dir_stats.ml
tools/dumper.ml
tools/dumper.mli
tools/extract_c_and_res.ml
tools/generate_dependencies.ml
tools/gitgrep.ml
tools/gitsort.ml
tools/licensify.ml
tools/process_isoprofile.ml
tools/splitpatch.ml
tools/spp.ml
version [new file with mode: 0644]

index 42a9aab..df350ea 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -29,7 +31,7 @@
 -include Makefile.config
 -include /etc/lsb-release
 
-VERSION=$(shell cat globals/config.ml.in |grep version |perl -p -e 's/.*"(.*)".*/$$1/;')
+VERSION=$(shell cat ./version)
 CCVERSION=$(shell cat scripts/coccicheck/README |grep "Coccicheck version" |perl -p -e 's/.*version (.*)[ ]*/$$1/;')
 PKGVERSION=$(shell dpkg-parsechangelog -ldebian/changelog.$(DISTRIB_CODENAME) 2> /dev/null \
         | sed -n 's/^Version: \(.*\)/\1/p' )
@@ -482,7 +484,7 @@ tags:
        otags -no-mli-tags -r  .
 
 dependencygraph:
-       find  -name "*.ml" |grep -v "scripts" | xargs ocamldep -I commons -I globals -I ctl -I parsing_cocci -I parsing_c -I engine -I popl09 -I extra > /tmp/dependfull.depend
+       find . -name "*.ml" |grep -v "scripts" | xargs ocamldep -I commons -I globals -I ctl -I parsing_cocci -I parsing_c -I engine -I popl09 -I extra > /tmp/dependfull.depend
        ocamldot -lr /tmp/dependfull.depend > /tmp/dependfull.dot
        dot -Tps /tmp/dependfull.dot > /tmp/dependfull.ps
        ps2pdf /tmp/dependfull.ps /tmp/dependfull.pdf
@@ -540,7 +542,7 @@ distclean:: clean
        rm -f TAGS
        rm -f tests/SCORE_actual.sexp
        rm -f tests/SCORE_best_of_both.sexp
-       find -name ".#*1.*" | xargs rm -f
+       find -name ".#*1.*" | xargs rm -f
 
 beforedepend::
 
index 461d068..1ccbc03 100644 (file)
@@ -35,7 +35,7 @@ OCAMLVERSION=$(shell ocaml -version |perl -p -e 's/.*version (.*)/$$1/;')
 #
 #  1) make prerelease # WARN: These will clean your local rep. of pending modifications
 #
-#  UPDATE VERSION number in globals/config.ml.in
+#  UPDATE VERSION number in ./version
 #  and commit it with
 #
 #  2) make release
@@ -70,7 +70,7 @@ prerelease:
        $(MAKE) fix-expected
        $(MAKE) distclean
        sed -i "s|^OCAMLCFLAGS=.*$$|OCAMLCFLAGS=|" Makefile
-       @echo "\n\tEdit globals/config.ml.in"
+       @echo "\n\tEdit ./version"
        @echo "\tCommit with 'make release'\n"
 
 fix-expected:
@@ -81,7 +81,8 @@ fix-expected:
        cp tests/SCORE_actual.sexp tests/SCORE_expected_orig.sexp
 
 release:
-       git add globals/config.ml.in
+       sed -i -e 's|^let version = ".*"$$|let version = "$(VERSION)"|g' globals/config.ml.in
+       git add ./ version globals/config.ml.in
        git commit -m "Release $(VERSION)"
        git tag -a -m "Release $(VERSION)" $(VERSION)
        git push --mirror
@@ -252,3 +253,11 @@ push:
        rm -rf $(TMP)/$(PRJNAME)_$(VERSION)*.dsc
        rm -rf $(TMP)/$(PRJNAME)_$(VERSION)*.tar.gz
 
+# Produces a source tarball
+# Note: start from a fresh working directory
+# Note: configure first
+dist:
+       $(MAKE) licensify
+       $(MAKE) docs
+       $(MAKE) clean
+       tar cvfz $(PACKAGE).tar.gz --transform="s,^,$(PACKAGE)/,S" --exclude=$(PACKAGE).tar.gz --exclude-backups --exclude-vcs *
index 2822db3..be84db4 100644 (file)
 - Allow ! to appear before () in depends.  Thanks to SF Markus Elfring for
   noticing the problem.
 - Can add code containing #pragma or #line.
+- Multicharacter command-line options now begin with -- and contain -
+  rather than _.
+- Allow multiple types of hidden metavariables, each preceded by @.
+  Position variables can be attached to these.
+- Python code now receives a structure containing a list of matched
+  elements for list metavariables.  Thanks to Michael Stefaniuc for
+  suggesting this features.
+- Python code now receives expressions and identifiers as ordinary strings,
+  not as elements of specific structures.
 
 ** Features:
 - Preserve spacing before // comments when not at the beginning of a line
@@ -82,6 +91,9 @@
 - no more crashing on c++-like code without the c++ argument.
 - dependencies can have ! on ()
 - Give ocaml code access to Flag and thus the current file name.
+- Slightly more efficient handling of lists.
+- Slightly better error message in the case of inconsistent paths
+- Improve limited size caching
 
 ** Bugfix:
 - Corrected parsing of script strings delimited by a single quote.  Thanks
   will be ignored.
 - Better support meta iterator and meta declarer tokens, and symid tokens.
 - Better indentation after added noindent.
+- Fixed length bug in the treatment of structures.
+- Allow inheriting declaration/field metavariables.
+- Don't drop spaces after parentheses in when no minus code present.
+  Thanks to Terry Wilson for reporting the problem.
+- Keep inherited metavariables in asttomember (preprocessing for matching)
+- allminus for types, to allow removing const, not just matching it
+- improved pretty printing when something is added before a closed brace
+- Allow matching on nameless structs.  Thanks to Ron Minnich for reporting
+  the problem.
+- Pretty printing of const/volatile arrays in smpl code.
 
 * 0.2.5
 ** Language:
index 94f4707..f469888 100644 (file)
--- a/cocci.ml
+++ b/cocci.ml
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -150,8 +152,8 @@ let ctls_of_ast2 ast (ua,fua,fuas) pos =
        (Asttomember.asttomember ast ua))
     ast (List.combine ua (List.combine fua (List.combine fuas pos)))
 
-let ctls_of_ast ast ua =
-  Common.profile_code "asttoctl2" (fun () -> ctls_of_ast2 ast ua)
+let ctls_of_ast ast ua pl =
+  Common.profile_code "asttoctl2" (fun () -> ctls_of_ast2 ast ua pl)
 
 (*****************************************************************************)
 (* Some  debugging functions *)
@@ -1657,7 +1659,8 @@ and process_a_ctl_a_env_a_toplevel2 r e c f =
       (***************************************)
             let model_ctl =
               CCI.model_for_ctl r.dropped_isos (Common.some c.flow) e
-            in CCI.mysat model_ctl ctl (r.rule_info.used_after, e))
+            in CCI.mysat model_ctl ctl
+              (r.rule_info.rulename, r.rule_info.used_after, e))
        in
        if not returned_any_states
        then None
@@ -1724,6 +1727,7 @@ let rec bigloop2 rs (ccs: file_info list) =
              (Ast_cocci.ScriptRule (nm,l,deps,mv,script_vars,code)));
        end;
 
+      (*pr2 (List.hd(cmd_to_list "free -m | grep Mem"));*)
        if !Flag.show_misc then print_endline "RESULT =";
 
         let (_, newes) =
@@ -1835,8 +1839,8 @@ let pre_engine2 (coccifile, isofile) =
   (* useful opti when use -dir *)
   let (metavars,astcocci,
        free_var_lists,negated_pos_lists,used_after_lists,
-       positions_lists,(toks,_,_)) =
-      sp_of_file coccifile isofile in
+       positions_lists,(toks,_,_)) = sp_of_file coccifile isofile in
+
   let ctls = ctls_of_ast astcocci used_after_lists positions_lists in
 
   g_contain_typedmetavar := sp_contain_typed_metavar astcocci;
index 190199c..2a06dc6 100644 (file)
--- a/cocci.mli
+++ b/cocci.mli
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index aa4d6e2..3ed8ba0 100644 (file)
@@ -3371,9 +3371,13 @@ let cache_computation_robust2
 
   if Sys.file_exists dependencies_cache &&
      get_value dependencies_cache =*= dependencies
-  then get_value file_cache
+  then
+    (*begin
+    pr2 ("cache computation reuse " ^ file);*)
+    get_value file_cache
+    (*end*)
   else begin
-    pr2 ("cache computation recompute " ^ file);
+    (*pr2 ("cache computation recompute " ^ file);*)
     let res = f () in
     write_value dependencies dependencies_cache;
     write_value res file_cache;
@@ -3552,6 +3556,7 @@ let timeout_function timeoutval = fun f ->
   with Timeout ->
     begin
       log "timeout (we abort)";
+      (*pr2 (List.hd(cmd_to_list "free -m | grep Mem"));*)
       raise Timeout;
     end
   | e ->
index 6f3a6c7..2e46817 100755 (executable)
--- a/configure
+++ b/configure
@@ -101,6 +101,10 @@ while($changedLibs) {
   }
 }
 
+if (!$python) {
+  $libs{'pycaml'} = 0;
+}
+
 #if($ARGV[0] =~ "--prefix=(.*)") {
 #    $prefix = $1;
 #}
@@ -172,8 +176,8 @@ $noocamlscripting = check_config("echo \"1;;\\n\" | ocaml |",
 my $ocamlprefix = $noocamlscripting ? "no" : "yes";
 
 if ($opt eq ".opt") {
-   my $opt_check = `which ocamlc.opt 2> /dev/null`;
-   if($opt_check =~ "/ocamlc.opt\$") {
+   my $opt_check1 = `ocamlc.opt -version 2>/dev/null`;
+   if($opt_check1 =~ /[0-9\.]+/) {
        pr2 "ocamlc.opt is present.";
    }
    else {
@@ -181,8 +185,8 @@ if ($opt eq ".opt") {
        pr2 "ocamlc.opt not found";
    }
 
-   my $opt_check = `which ocamlopt.opt 2> /dev/null`;
-   if($opt_check =~ "/ocamlopt.opt\$") {
+   my $opt_check2 = `ocamlopt.opt -version 2>/dev/null`;
+   if($opt_check2 =~ /[0-9\.]+/) {
        pr2 "ocamlopt.opt is present.";
    }
    else {
@@ -190,8 +194,8 @@ if ($opt eq ".opt") {
        pr2 "ocamlopt.opt not found";
    }
 
-   my $opt_check = `which ocamldep.opt 2> /dev/null`;
-   if($opt_check =~ "/ocamldep.opt\$") {
+   my $opt_check3 = `ocamldep.opt -version 2>/dev/null`;
+   if($opt_check3 =~ /[0-9\.]+/) {
        pr2 "ocamldep.opt is present.";
    }
    else {
@@ -199,8 +203,8 @@ if ($opt eq ".opt") {
        pr2 "ocamldep.opt not found";
    }
 
-   my $opt_check = `which ocamllex.opt 2> /dev/null`;
-   if($opt_check =~ "/ocamllex.opt\$") {
+   my $opt_check4 = `ocamllex.opt -version 2>/dev/null`;
+   if($opt_check4 =~ /[0-9\.]+/) {
        pr2 "ocamllex.opt is present.";
    }
    else {
@@ -276,8 +280,8 @@ if($python) {
 }
 
 my $ocamlfind=!check_config(
-       "which ocamlfind 2> /dev/null |",
-       '/ocamlfind$',
+       "ocamlfind ocamlc -version 2> /dev/null | ",
+       '^[0-9\.]+',
        "ocamlfind is present",
        "ocamlfind is missing -- Switch to local library copies."
     );
@@ -341,7 +345,7 @@ if($pcre) {
 pr2 "----------------------------------------------------------------------";
 pr2 "Library configuration:";
 
-my %libPaths = {};
+my %libPaths;
 foreach my $lib (keys %libs) {
   my $isSelected = $libs{$lib};
   if ($isSelected) {
@@ -564,26 +568,49 @@ LNKLIBS=$strLnklibs
 OPTLNKLIBS=$strOptlnklibs
 INCLIBS=$strInclibs
 FLAGSLIBS=$strFlagslibs
+
+# selected ocaml modules
 ";
 
+sub repl {
+    my $src = $_[0];
+    my $dest = $_[1];
+    my $key = $_[2];
+    my $val = ucfirst($_[3]);
+    my $cmd = "sed -e 's|${key}|${val}|g' ${src} > ${dest}";
+    if (-e $dest) {
+       unlink($dest);
+    }
+    `$cmd`;
+}
 
 my $pythonprefix = $python ? "yes" : "no";
 pr2 "Support for python scripting: $pythonprefix";
-`cd python; ln -sf ${pythonprefix}_pycocci.ml pycocci.ml; `;
+repl('python/pycocci.ml.in', 'python/pycocci.ml', '@PYCOCCI_FILE@', "${pythonprefix}_pycocci");
+print CONFIG "PYCOCCI_FILE=${pythonprefix}_pycocci.ml\n";
+# `cd python; ln -sf ${pythonprefix}_pycocci.ml pycocci.ml; `;
 `cd python; make depend`;
 
 pr2 "Support for ocaml scripting: $ocamlprefix";
-`cd ocaml; ln -sf ${ocamlprefix}_prepare_ocamlcocci.ml prepare_ocamlcocci.ml;`;
+repl('ocaml/prepare_ocamlcocci.ml.in', 'ocaml/prepare_ocamlcocci.ml', '@OCAMLCOCCI_FILE@', "${ocamlprefix}_prepare_ocamlcocci");
+print CONFIG "OCAMLCOCCI_FILE=${ocamlprefix}_prepare_ocamlcocci.ml\n";
+# `cd ocaml; ln -sf ${ocamlprefix}_prepare_ocamlcocci.ml prepare_ocamlcocci.ml;`;
 `cd ocaml; make depend`;
 
 my $pcresuffix = $pcre ? "pcre" : "str";
 pr2 "Support for regexp: $pcresuffix";
-`cd globals; ln -sf regexp_${pcresuffix}.ml regexp.ml; touch regexp.ml;`;
+repl('globals/regexp.ml.in', 'globals/regexp.ml', '@REGEXP_FILE@', "Regexp_${pcresuffix}");
+print CONFIG "REGEXP_FILE=regexp_${pcresuffix}.ml";
+# `cd globals; ln -sf regexp_${pcresuffix}.ml regexp.ml; touch regexp.ml;`;
 `cd globals; make depend`;
 
 pr2 "Modifying globals/config.ml";
-my $command = "perl -p -e 's#Not_found.\*#Not_found->\\\"$src\\\"#' globals/config.ml.in > globals/config.ml";
-`$command`;
+my $version = `cat ./version | tr -d '\n'`;
+`echo -n "$version" > ./version`; # make sure that there are no newlines after version
+my $command1 = "sed -i -e 's|^let version = \".*\"\$|let version = \"$version\"|g' globals/config.ml.in"; # substitute version
+my $command2 = "perl -p -e 's#Not_found.\*#Not_found->\\\"$src\\\"#' globals/config.ml.in > globals/config.ml";
+`$command1`;
+`$command2`;
 
 pr2 "----------------------------------------------------------------------";
 pr2 "  Runtime dependency\n";
index 996dfbc..e087b66 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 30e8c60..191dace 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 776dcc6..c2b274c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -1629,7 +1631,6 @@ type ('code,'value) cell = Frozen of 'code | Thawed of 'value
 let rec satloop unchecked required required_states
     ((grp,label,states) as m) phi env =
   let rec loop unchecked required required_states phi =
-    (*Common.profile_code "satloop" (fun _ -> *)
     let res =
       match phi with
       A.False              -> []
@@ -1648,14 +1649,19 @@ let rec satloop unchecked required required_states
        triples_union
          (loop unchecked required required_states phi1)
          (loop unchecked required required_states phi2)
-    | A.SeqOr(phi1,phi2)      ->
+    | A.SeqOr(phi1,phi2)   ->
        let res1 = loop unchecked required required_states phi1 in
        let res2 = loop unchecked required required_states phi2 in
        let res1neg = unwitify res1 in
-       triples_union res1
-         (triples_conj
-            (triples_complement (mkstates states required_states) res1neg)
-            res2)
+       let pm = !Flag_ctl.partial_match in
+       (match (pm,res1,res2) with
+         (false,res1,[]) -> res1
+       | (false,[],res2) -> res2
+       | _ ->
+           triples_union res1
+             (triples_conj
+                (triples_complement (mkstates states required_states) res1neg)
+                res2))
     | A.And(strict,phi1,phi2)     ->
        (* phi1 is considered to be more likely to be [], because of the
           definition of asttoctl.  Could use heuristics such as the size of
@@ -1743,21 +1749,21 @@ let rec satloop unchecked required required_states
                      phi1res phi2res))
     | A.InnerAnd(phi) ->
        inner_and(loop unchecked required required_states phi)
-    | A.EX(dir,phi)      ->
+    | A.EX(dir,phi)   ->
        let new_required_states =
          get_children_required_states dir m required_states in
        satEX dir m (loop unchecked required new_required_states phi)
          required_states
-    | A.AX(dir,strict,phi)      ->
+    | A.AX(dir,strict,phi) ->
        let new_required_states =
          get_children_required_states dir m required_states in
        let res = loop unchecked required new_required_states phi in
        strict_A1 strict satAX satEX dir m res required_states
-    | A.EF(dir,phi)            ->
+    | A.EF(dir,phi) ->
        let new_required_states = get_reachable dir m required_states in
        satEF dir m (loop unchecked required new_required_states phi)
          new_required_states
-    | A.AF(dir,strict,phi)            ->
+    | A.AF(dir,strict,phi) ->
        if !Flag_ctl.loop_in_src_code
        then
          loop unchecked required required_states
@@ -1766,15 +1772,15 @@ let rec satloop unchecked required required_states
          let new_required_states = get_reachable dir m required_states in
          let res = loop unchecked required new_required_states phi in
          strict_A1 strict satAF satEF dir m res new_required_states
-    | A.EG(dir,phi)            ->
+    | A.EG(dir,phi) ->
        let new_required_states = get_reachable dir m required_states in
        satEG dir m (loop unchecked required new_required_states phi)
          new_required_states
-    | A.AG(dir,strict,phi)            ->
+    | A.AG(dir,strict,phi) ->
        let new_required_states = get_reachable dir m required_states in
        let res = loop unchecked required new_required_states phi in
        strict_A1 strict satAG satEF dir m res new_required_states
-    | A.EU(dir,phi1,phi2)      ->
+    | A.EU(dir,phi1,phi2) ->
        let new_required_states = get_reachable dir m required_states in
        (match loop unchecked required new_required_states phi2 with
          [] when !pLazyOpt -> []
@@ -1822,17 +1828,18 @@ let rec satloop unchecked required required_states
                )
     | A.Implies(phi1,phi2) ->
        loop unchecked required required_states (A.Or(A.Not phi1,phi2))
-    | A.Exists (keep,v,phi)     ->
+    | A.Exists (keep,v,phi) ->
        let new_required = drop_required v required in
        triples_witness v unchecked (not keep)
          (loop unchecked new_required required_states phi)
-    | A.Let(v,phi1,phi2)   ->
+         
+    | A.Let(v,phi1,phi2) ->
        (* should only be used when the properties unchecked, required,
           and required_states are known to be the same or at least
           compatible between all the uses.  this is not checked. *)
        let res = loop unchecked required required_states phi1 in
        satloop unchecked required required_states m phi2 ((v,res) :: env)
-    | A.LetR(dir,v,phi1,phi2)   ->
+    | A.LetR(dir,v,phi1,phi2) ->
        (* should only be used when the properties unchecked, required,
           and required_states are known to be the same or at least
           compatible between all the uses.  this is not checked. *)
@@ -1840,7 +1847,7 @@ let rec satloop unchecked required required_states
        let new_required_states = get_reachable dir m required_states in
        let res = loop unchecked required new_required_states phi1 in
        satloop unchecked required required_states m phi2 ((v,res) :: env)
-    | A.Ref(v)             ->
+    | A.Ref(v) ->
        let res = List.assoc v env in
        if unchecked
        then List.map (function (s,th,_) -> (s,th,[])) res
@@ -1856,6 +1863,9 @@ let rec satloop unchecked required required_states
 
 
 (* SAT with tracking *)
+let output str =
+  Printf.printf "%s\n" str
+
 let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
     ((_,label,states) as m) phi env =
   let anno res children = (annot lvl phi res children,res) in
@@ -1870,24 +1880,24 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
       A.False              -> anno [] []
     | A.True               -> anno (triples_top states) []
     | A.Pred(p)            ->
-       Printf.printf "label\n"; flush stdout;
+       output "label";
        anno (satLabel label required p) []
     | A.Uncheck(phi1) ->
        let unchecked = if !pUNCHECK_OPT then true else false in
        let (child1,res1) = satv unchecked required required_states phi1 env in
-       Printf.printf "uncheck\n"; flush stdout;
+       output "uncheck";
        anno res1 [child1]
     | A.Not(phi1)          ->
        let (child,res) =
          satv unchecked required required_states phi1 env in
-       Printf.printf "not\n"; flush stdout;
+       output "not";
        anno (triples_complement (mkstates states required_states) res) [child]
     | A.Or(phi1,phi2)      ->
        let (child1,res1) =
          satv unchecked required required_states phi1 env in
        let (child2,res2) =
          satv unchecked required required_states phi2 env in
-       Printf.printf "or\n"; flush stdout;
+       output "or";
        anno (triples_union res1 res2) [child1; child2]
     | A.SeqOr(phi1,phi2)      ->
        let (child1,res1) =
@@ -1896,27 +1906,32 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
          satv unchecked required required_states phi2 env in
        let res1neg =
          List.map (function (s,th,_) -> (s,th,[])) res1 in
-       Printf.printf "seqor\n"; flush stdout;
-       anno (triples_union res1
-               (triples_conj
-                  (triples_complement (mkstates states required_states)
-                     res1neg)
-                  res2))
-         [child1; child2]
+       output "seqor";
+       let pm = !Flag_ctl.partial_match in
+       (match (pm,res1,res2) with
+         (false,res1,[]) -> anno res1 [child1; child2]
+       | (false,[],res2) -> anno res2 [child1; child2]
+       | _ ->
+           anno (triples_union res1
+                   (triples_conj
+                      (triples_complement (mkstates states required_states)
+                         res1neg)
+                      res2))
+             [child1; child2])
     | A.And(strict,phi1,phi2)     ->
        let pm = !Flag_ctl.partial_match in
        (match (pm,satv unchecked required required_states phi1 env) with
          (false,(child1,[])) ->
-           Printf.printf "and\n"; flush stdout; anno [] [child1]
+           output "and"; anno [] [child1]
        | (_,(child1,res1)) ->
            let new_required = extend_required res1 required in
            let new_required_states = get_required_states res1 in
            (match (pm,satv unchecked new_required new_required_states phi2
                      env) with
              (false,(child2,[])) ->
-               Printf.printf "and\n"; flush stdout; anno [] [child1;child2]
+               output "and"; anno [] [child1;child2]
            | (_,(child2,res2)) ->
-               Printf.printf "and\n"; flush stdout;
+               output "and";
                let res =
                  strict_triples_conj strict
                    (mkstates states required_states)
@@ -1926,7 +1941,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
        let pm = !Flag_ctl.partial_match in
        (match (pm,satv unchecked required required_states phi1 env) with
          (false,(child1,[])) ->
-           Printf.printf "and\n"; flush stdout; anno [] [child1]
+           output "and"; anno [] [child1]
        | (_,(child1,res1)) ->
            let new_required = extend_required res1 required in
            let new_required_states = get_required_states res1 in
@@ -1935,7 +1950,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
            (match (pm,satv unchecked new_required new_required_states phi2
                env) with
              (false,(child2,[])) ->
-               Printf.printf "andany\n"; flush stdout;
+               output "andany";
                anno res1 [child1;child2]
            | (_,(child2,res2)) ->
                (match res1 with
@@ -1953,7 +1968,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
                | [(state,_,_)] ->
                    let res2 =
                      List.map (function (s,e,w) -> [(state,e,w)]) res2 in
-                   Printf.printf "andany\n"; flush stdout;
+                   output "andany";
                    let res =
                      let s = mkstates states required_states in
                      List.fold_left
@@ -1968,7 +1983,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
        let pm = !Flag_ctl.partial_match in
        (match (pm,satv unchecked required required_states phi1 env) with
          (false,(child1,[])) ->
-           Printf.printf "and\n"; flush stdout; anno [] [child1]
+           output "and"; anno [] [child1]
        | (_,(child1,res1)) ->
            let new_required = extend_required res1 required in
            let new_required_states = get_required_states res1 in
@@ -1977,7 +1992,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
            (match (pm,satv unchecked new_required new_required_states phi2
                env) with
              (false,(child2,[])) ->
-               Printf.printf "andany\n"; flush stdout;
+               output "andany";
                anno res1 [child1;child2]
            | (_,(child2,res2)) ->
                let res =
@@ -1993,28 +2008,28 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
                anno res [child1; child2]))
     | A.InnerAnd(phi1) ->
        let (child1,res1) = satv unchecked required required_states phi1 env in
-       Printf.printf "uncheck\n"; flush stdout;
+       output "uncheck";
        anno (inner_and res1) [child1]
     | A.EX(dir,phi1)       ->
        let new_required_states =
          get_children_required_states dir m required_states in
        let (child,res) =
          satv unchecked required new_required_states phi1 env in
-       Printf.printf "EX\n"; flush stdout;
+       output "EX";
        anno (satEX dir m res required_states) [child]
     | A.AX(dir,strict,phi1)       ->
        let new_required_states =
          get_children_required_states dir m required_states in
        let (child,res) =
          satv unchecked required new_required_states phi1 env in
-       Printf.printf "AX\n"; flush stdout;
+       output "AX";
        let res = strict_A1 strict satAX satEX dir m res required_states in
        anno res [child]
     | A.EF(dir,phi1)       ->
        let new_required_states = get_reachable dir m required_states in
        let (child,res) =
          satv unchecked required new_required_states phi1 env in
-       Printf.printf "EF\n"; flush stdout;
+       output "EF";
        anno (satEF dir m res new_required_states) [child]
     | A.AF(dir,strict,phi1) ->
        if !Flag_ctl.loop_in_src_code
@@ -2026,7 +2041,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
          (let new_required_states = get_reachable dir m required_states in
          let (child,res) =
            satv unchecked required new_required_states phi1 env in
-         Printf.printf "AF\n"; flush stdout;
+         output "AF";
          let res =
            strict_A1 strict satAF satEF dir m res new_required_states in
          anno res [child])
@@ -2034,13 +2049,13 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
        let new_required_states = get_reachable dir m required_states in
        let (child,res) =
          satv unchecked required new_required_states phi1 env in
-       Printf.printf "EG\n"; flush stdout;
+       output "EG";
        anno (satEG dir m res new_required_states) [child]
     | A.AG(dir,strict,phi1)       ->
        let new_required_states = get_reachable dir m required_states in
        let (child,res) =
          satv unchecked required new_required_states phi1 env in
-       Printf.printf "AG\n"; flush stdout;
+       output "AG";
        let res = strict_A1 strict satAG satEF dir m res new_required_states in
        anno res [child]
 
@@ -2048,13 +2063,13 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
        let new_required_states = get_reachable dir m required_states in
        (match satv unchecked required new_required_states phi2 env with
          (child2,[]) ->
-           Printf.printf "EU\n"; flush stdout;
+           output "EU";
            anno [] [child2]
        | (child2,res2) ->
            let new_required = extend_required res2 required in
            let (child1,res1) =
              satv unchecked new_required new_required_states phi1 env in
-           Printf.printf "EU\n"; flush stdout;
+           output "EU";
            anno (satEU dir m res1 res2 new_required_states (fun y str -> ()))
              [child1; child2])
     | A.AW(dir,strict,phi1,phi2)      ->
@@ -2062,12 +2077,12 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
          let new_required_states = get_reachable dir m required_states in
          (match satv unchecked required new_required_states phi2 env with
            (child2,[]) ->
-             Printf.printf "AW %b\n" unchecked; flush stdout; anno [] [child2]
+             output (Printf.sprintf "AW %b" unchecked); anno [] [child2]
          | (child2,res2) ->
              let new_required = extend_required res2 required in
              let (child1,res1) =
                satv unchecked new_required new_required_states phi1 env in
-             Printf.printf "AW %b\n" unchecked; flush stdout;
+             output (Printf.sprintf "AW %b" unchecked);
              let res =
                strict_A2 strict satAW satEF dir m res1 res2
                  new_required_states in
@@ -2076,12 +2091,12 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
        let new_required_states = get_reachable dir m required_states in
        (match satv unchecked required new_required_states phi2 env with
          (child2,[]) ->
-           Printf.printf "AU\n"; flush stdout; anno [] [child2]
+           output "AU"; anno [] [child2]
        | (child2,s2) ->
            let new_required = extend_required s2 required in
            let (child1,s1) =
              satv unchecked new_required new_required_states phi1 env in
-           Printf.printf "AU\n"; flush stdout;
+           output "AU";
            let res =
              strict_A2au strict satAU satEF dir m s1 s2 new_required_states
                (fun y str -> ()) in
@@ -2094,7 +2109,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
                   A[E[phi1 U phi2] & phi1 W phi2]
                   the and is nonstrict *)
                (* tmp_res is bigger than s2, so perhaps closer to s1 *)
-             Printf.printf "AW\n"; flush stdout;
+             output "AW";
              let s1 =
                triples_conj
                  (satEU dir m s1 tmp_res new_required_states
@@ -2112,7 +2127,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
        let new_required = drop_required v required in
        let (child,res) =
          satv unchecked new_required required_states phi1 env in
-       Printf.printf "exists\n"; flush stdout;
+       output "exists";
        anno (triples_witness v unchecked (not keep) res) [child]
     | A.Let(v,phi1,phi2)   ->
        let (child1,res1) =
@@ -2128,7 +2143,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl
          satv unchecked required required_states phi2 ((v,res1) :: env) in
        anno res2 [child1;child2]
     | A.Ref(v)             ->
-       Printf.printf "Ref\n"; flush stdout;
+       output "Ref";
        let res = List.assoc v env in
        let res =
          if unchecked
@@ -2495,7 +2510,6 @@ let sat m phi reqopt =
       then Common.pr2 "missing something required";
        [])
   with Steps -> []
-;;
 
 (* ********************************************************************** *)
 (* End of Module: CTL_ENGINE                                              *)
index 3251c0a..dca8b6e 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index d840ef0..2704ee8 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 9c7fbf1..4eb36bb 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 4819215..0755993 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index c53681c..aafb47b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 24f9c63..067317c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 17436dd..b33021a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index ca65f89..82311bc 100644 (file)
@@ -217,6 +217,17 @@ considered C identifiers when encountered in the body of the rule.
 Identifiers in the body of the rule that are not declared explicitly are
 by default considered symbols, thus symbol declarations are optional.
 
+A position metavariable is used by attaching it using \texttt{@} to any
+token, including another metavariable.  Its value is the position (file,
+line number, etc.) of the code matched by the token.  It is also possible
+to attach expression, declaration, type, initialiser, and statement
+metavariables in this manner.  In that case, the metavariable is bound to
+the closest enclosing expression, declaration, etc.  If such a metavariable
+is itself followed by a position metavariable, the position metavariable
+applies to the metavariable that it follows, and not to the attached token.
+This makes it possible to get eg the starting and ending position of {\tt
+  f(...)}, by writing {\tt f(...)@E@p}, for expression metavariable {\tt E}
+and position metavariable {\tt p}.
 
 \begin{grammar}
   \RULE{\rt{ids}}
index 6370f06..3a529fd 100644 (file)
Binary files a/docs/manual/main_grammar.pdf and b/docs/manual/main_grammar.pdf differ
index c4d2f2b..56aefab 100644 (file)
Binary files a/docs/manual/manual.pdf and b/docs/manual/manual.pdf differ
index 901be6b..5f0afc3 100644 (file)
Binary files a/docs/manual/options.pdf and b/docs/manual/options.pdf differ
index 0fcb57b..bccafb1 100644 (file)
@@ -21,22 +21,22 @@ follows, for a semantic match {\tt foo.cocci}, a C file {\tt foo.c}, and a
 directory {\tt foodir}:
 
 \begin{itemize}
-\item {\tt spatch -parse\_cocci foo.cocci}: Check that the semantic patch
+\item {\tt spatch --parse-cocci foo.cocci}: Check that the semantic patch
   is syntactically correct.
-\item {\tt spatch -parse\_c foo.c}: Check that the C file
+\item {\tt spatch --parse-c foo.c}: Check that the C file
   is syntactically correct.  The Coccinelle C parser tries to recover
   during the parsing process, so if one function does not parse, it will
   start up again with the next one.  Thus, a parse error is often not a
   cause for concern, unless it occurs in a function that is relevant to the
   semantic patch.
-\item {\tt spatch -sp\_file foo.cocci foo.c}: Apply the semantic patch {\tt
+\item {\tt spatch --sp-file foo.cocci foo.c}: Apply the semantic patch {\tt
     foo.cocci} to the file {\tt foo.c} and print out any transformations as a
-  diff.
-\item {\tt spatch -sp\_file foo.cocci foo.c -debug}:  The same as the
+  diff.  {\tt --sp-file} is optional in this and the following cases.
+\item {\tt spatch --sp-file foo.cocci foo.c --debug}:  The same as the
   previous case, but print out some information about the matching process.
-\item {\tt spatch -sp\_file foo.cocci -dir foodir}:  Apply the semantic
+\item {\tt spatch --sp-file foo.cocci --dir foodir}:  Apply the semantic
   patch {\tt foo.cocci} to all of the C files in the directory {\tt foodir}.
-\item {\tt spatch -sp\_file foo.cocci -dir foodir -include\_headers}:  Apply
+\item {\tt spatch --sp-file foo.cocci --dir foodir --include-headers}:  Apply
   the semantic patch {\tt foo.cocci} to all of the C files and header files
   in the directory {\tt foodir}. 
 \end{itemize}
@@ -57,113 +57,113 @@ understanding the effect of a semantic patch.
 
 \subsection{Standalone options}
 
-\normal{-parse\_cocci $\langle$file$\rangle$}{ Parse a semantic
+\normal{--parse-cocci $\langle$file$\rangle$}{ Parse a semantic
 patch file and print out some information about it.}
 
 \subsection{The semantic patch}
 
-\minimum{-sp\_file $\langle$file$\rangle$, -c $\langle$file$\rangle$, 
--cocci\_file $\langle$file$\rangle$}{ Specify the name of the file
+\minimum{--sp-file $\langle$file$\rangle$, -c $\langle$file$\rangle$, 
+-cocci-file $\langle$file$\rangle$}{ Specify the name of the file
   containing the semantic patch.  The file name should end in {\tt .cocci}.
 All three options do the same thing.  These options are optional.  If they
 are not used, the single file whose name ends in \texttt{.cocci} is
 assoumed to be the name of the file containing the semantic patch.}
 
-\rare{-sp ``semantic patch string''}{Specify a semantic match as a
+\rare{--sp ``semantic patch string''}{Specify a semantic match as a
   command-line argument.  See the section ``Command-line semantic match''
   in the manual.}
 
 \subsection{Isomorphisms}
 
-\rare{-iso, -iso\_file}{ Specify a file containing isomorphisms to be used in
+\rare{--iso, --iso-file}{ Specify a file containing isomorphisms to be used in
 place of the standard one.  Normally one should use the {\tt using}
 construct within a semantic patch to specify isomorphisms to be used {\em
   in addition to} the standard ones.}
 
-\rare{-iso\_limit $\langle$int$\rangle$} Limit the depth of application of
+\rare{--iso-limit $\langle$int$\rangle$} Limit the depth of application of
 isomorphisms to the specified integer.
 
-\rare{-no\_iso\_limit} Put no limit on the number of times that
+\rare{--no-iso-limit} Put no limit on the number of times that
 isomorphisms can be applied. This is the default.
 
-\rare{-disable\_iso}{Disable a specific isomorphism from the command line.
+\rare{--disable-iso}{Disable a specific isomorphism from the command line.
   This option can be specified multiple times.}
 
-\developer{-track\_iso}{ Gather information about isomorphism usage.}
+\developer{--track-iso}{ Gather information about isomorphism usage.}
 
-\developer{-profile\_iso}{ Gather information about the time required for
+\developer{--profile-iso}{ Gather information about the time required for
 isomorphism expansion.}
 
 \subsection{Display options}
 
-\rare{-show\_cocci}{Show the semantic patch that is being processed before
+\rare{--show-cocci}{Show the semantic patch that is being processed before
   expanding isomorphisms.}
 
-\rare{-show\_SP}{Show the semantic patch that is being processed after
+\rare{--show-SP}{Show the semantic patch that is being processed after
   expanding isomorphisms.}
 
-\rare{-show\_ctl\_text}{ Show the representation
+\rare{--show-ctl-text}{ Show the representation
 of the semantic patch in CTL.}
 
-\rare{-ctl\_inline\_let}{ Sometimes {\tt let} is used to name
+\rare{--ctl-inline-let}{ Sometimes {\tt let} is used to name
 intermediate terms CTL representation.  This option causes the let-bound
 terms to be inlined at the point of their reference.
-This option implicitly sets {\bf -show\_ctl\_text}.}
+This option implicitly sets {\bf --show-ctl-text}.}
 
-\rare{-ctl\_show\_mcodekind}{ Show
+\rare{--ctl-show-mcodekind}{ Show
 transformation information within the CTL representation
-of the semantic patch. This option implicitly sets {\bf -show\_ctl\_text}.}
+of the semantic patch. This option implicitly sets {\bf --show-ctl-text}.}
 
-\rare{-show\_ctl\_tex}{ Create a LaTeX files showing the representation
+\rare{--show-ctl-tex}{ Create a LaTeX files showing the representation
 of the semantic patch in CTL.}
 
 \section{Selecting and parsing the C files}
 
 \subsection{Standalone options}
 
-\normal{-parse\_c $\langle$file/dir$\rangle$}{ Parse a {\tt .c} file or all
+\normal{--parse-c $\langle$file/dir$\rangle$}{ Parse a {\tt .c} file or all
   of the {\tt .c} files in a directory.  This generates information about
   any parse errors encountered.}
 
-\normal{-parse\_h $\langle$file/dir$\rangle$}{ Parse a {\tt .h} file or all
+\normal{--parse-h $\langle$file/dir$\rangle$}{ Parse a {\tt .h} file or all
   of the {\tt .h} files in a directory.  This generates information about
   any parse errors encountered.}
 
-\normal{-parse\_ch $\langle$file/dir$\rangle$}{ Parse a {\tt .c} or {\tt
+\normal{--parse-ch $\langle$file/dir$\rangle$}{ Parse a {\tt .c} or {\tt
     .h} file or all of the {\tt .c} or {\tt .h} files in a directory.  This
   generates information about any parse errors encountered.}
 
-\normal{-control\_flow $\langle$file$\rangle$, -control\_flow
+\normal{--control-flow $\langle$file$\rangle$, --control-flow
 $\langle$file$\rangle$:$\langle$function$\rangle$}{ Print a control-flow
 graph for all of the functions in a file or for a specific function in a
 file.  This requires {\tt dot} (http://www.graphviz.org/) and {\tt gv}.}
 
-\rare{-control\_flow\_to\_file $\langle$file$\rangle$,
-  -control\_flow\_to\_file
-  $\langle$file$\rangle$:$\langle$function$\rangle$}{ Like -control\_flow
+\rare{--control-flow-to-file $\langle$file$\rangle$,
+  --control-flow-to-file
+  $\langle$file$\rangle$:$\langle$function$\rangle$}{ Like --control-flow
   but just puts the dot output in a file in the {\em current} directory.
   For PATH/file.c, this produces file:xxx.dot for each (selected) function
   xxx in PATH/file.c.}
 
-\rare{-type\_c $\langle$file$\rangle$}{ Parse a C file and pretty-print a
+\rare{--type-c $\langle$file$\rangle$}{ Parse a C file and pretty-print a
 version including type information.}
 
-\developer{-tokens\_c $\langle$file$\rangle$}{Prints the tokens in a C
+\developer{--tokens-c $\langle$file$\rangle$}{Prints the tokens in a C
   file.}
 
-\developer{-parse\_unparse $\langle$file$\rangle$}{Parse and then reconstruct
+\developer{--parse-unparse $\langle$file$\rangle$}{Parse and then reconstruct
   a C file.}
 
-\developer{-compare\_c $\langle$file$\rangle$ $\langle$file$\rangle$,
-  -compare\_c\_hardcoded}{Compares one C file to another, or compare the
+\developer{--compare-c $\langle$file$\rangle$ $\langle$file$\rangle$,
+  --compare-c-hardcoded}{Compares one C file to another, or compare the
 file tests/compare1.c to the file tests/compare2.c.}
 
-\developer{-test\_cfg\_ifdef $\langle$file$\rangle$}{Do some special
+\developer{--test-cfg-ifdef $\langle$file$\rangle$}{Do some special
 processing of \#ifdef and display the resulting control-flow graph.  This
 requires {\tt dot} and {\tt gv}.}
 
-\developer{-test\_attributes $\langle$file$\rangle$,
-           -test\_cpp $\langle$file$\rangle$}{
+\developer{--test-attributes $\langle$file$\rangle$,
+           --test-cpp $\langle$file$\rangle$}{
 Test the parsing of cpp code and attributes, respectively.}
 
 \subsection{Selecting C files}
@@ -176,81 +176,81 @@ second semantic patch rule is applied to all functions in all files, etc.
 If a directory is specified then no files may be specified and only the
 rightmost directory specified is used.
 
-\normal{-include\_headers}{ This option causes header files to be processed
+\normal{--include-headers}{ This option causes header files to be processed
 independently.  This option only makes sense if a directory is specified
-using {\bf -dir}.}
+using {\bf --dir}.}
 
-\normal{-use\_glimpse}{ Use a glimpse index to select the files to which
+\normal{--use-glimpse}{ Use a glimpse index to select the files to which
 a semantic patch may be relevant.  This option requires that a directory is
 specified.  The index may be created using the script {\tt
-  coccinelle/scripts/ glimpseindex\_cocci.sh}.  Glimpse is available at
-http://webglimpse.net/.  In conjunction with the option {\bf -patch\_cocci}
+  coccinelle/scripts/ glimpseindex-cocci.sh}.  Glimpse is available at
+http://webglimpse.net/.  In conjunction with the option {\bf --patch-cocci}
 this option prints the regular expression that will be passed to glimpse.}
 
-\normal{-use\_idutils}{ Use an id-utils index created using lid to select
+\normal{--use-idutils}{ Use an id-utils index created using lid to select
   the files to which a semantic patch may be relevant.  This option
   requires that a directory is specified.  The index may be created using
-  the script {\tt coccinelle/scripts/ idindex\_cocci.sh}.  In conjunction
-  with the option {\bf -patch\_cocci} this option prints the regular
+  the script {\tt coccinelle/scripts/ idindex-cocci.sh}.  In conjunction
+  with the option {\bf --patch-cocci} this option prints the regular
   expression that will be passed to glimpse.}
 
-\rare{-dir}{ Specify a directory containing C files to process.  A trailing
+\rare{--dir}{ Specify a directory containing C files to process.  A trailing
   {\tt /} is permitted on the directory name and has no impact on the
   result.  By default, the include path will be set to the ``include''
   subdirectory of this directory.  A different include path can be
-  specified using the option {\bf -I}.  {\bf -dir} only considers the
+  specified using the option {\bf -I}.  {\bf --dir} only considers the
   rightmost directory in the argument list.  This behavior is convenient
   for creating a script that always works on a single directory, but allows
   the user of the script to override the provided directory with another
   one.  Spatch collects the files in the directory using {\tt find} and
   does not follow symbolic links.}
 
-\developer{-kbuild\_info $\langle$file$\rangle$}{ The specified file
+\developer{--kbuild-info $\langle$file$\rangle$}{ The specified file
   contains information about which sets of files should be considered in
   parallel.}
 
-\developer{-disable\_worth\_trying\_opt}{Normally, a C file is only
+\developer{--disable-worth-trying-opt}{Normally, a C file is only
   processed if it contains some keywords that have been determined to be
   essential for the semantic patch to match somewhere in the file.  This
   option disables this optimization and tries the semantic patch on all files.}
 
-\developer{-test $\langle$file$\rangle$}{ A shortcut for running Coccinelle
+\developer{--test $\langle$file$\rangle$}{ A shortcut for running Coccinelle
 on the semantic patch ``file{\tt{.cocci}}'' and the C file ``file{\tt{.c}}''.}
 
-\developer{-testall}{A shortcut for running Coccinelle on all files in a
+\developer{--testall}{A shortcut for running Coccinelle on all files in a
   subdirectory {\tt tests} such that there are all of a {\tt .cocci} file, a {\tt
     .c} file, and a {\tt .res} file, where the {\tt .res} contains the
   expected result.}
 
-\developer{-test\_okfailed, -test\_regression\_okfailed} Other options for
+\developer{--test-okfailed, --test-regression-okfailed} Other options for
 keeping track of tests that have succeeded and failed.
 
-\developer{-compare\_with\_expected}{Compare the result of applying
+\developer{--compare-with-expected}{Compare the result of applying
   Coccinelle to file{\tt{.c}} to the file file{\tt{.res}} representing the
   expected result.}
 
-\developer{-expected\_score\_file $\langle$file$\rangle$}{
+\developer{--expected-score-file $\langle$file$\rangle$}{
 which score file to compare with in the testall run}
 
 \subsection{Parsing C files}
 
-\rare{-show\_c}{Show the C code that is being processed.}
+\rare{--show-c}{Show the C code that is being processed.}
 
-\rare{-parse\_error\_msg}{Show parsing errors in the C file.}
+\rare{--parse-error-msg}{Show parsing errors in the C file.}
 
-\rare{-verbose\_parsing}{Show parsing errors in the C file, as well as
+\rare{--verbose-parsing}{Show parsing errors in the C file, as well as
   information about attempts to accomodate such errors.  This implicitly
-  sets -parse\_error\_msg.}
+  sets --parse-error-msg.}
 
-\rare{-type\_error\_msg}{Show information about where the C type checker
+\rare{--type-error-msg}{Show information about where the C type checker
   was not able to determine the type of an expression.}
 
-\rare{-int\_bits $\langle$n$\rangle$, -long\_bits
+\rare{--int-bits $\langle$n$\rangle$, --long-bits
 $\langle$n$\rangle$}{Provide integer size information. n is the number of
 bits in an unsigned integer or unsigned long, respectively.  If only the
-option {\bf -int\_bits} is used, unsigned longs will be assumed to have
+option {\bf --int-bits} is used, unsigned longs will be assumed to have
 twice as many bits as unsigned integers.  If only the option {\bf
--long\_bits} is used, unsigned ints will be assumed to have half as many
+-long-bits} is used, unsigned ints will be assumed to have half as many
 bits as unsigned integers.  This information is only used in determining
 the types of integer constants, according to the ANSI C standard (C89).  If
 neither is provided, the type of an integer constant is determined by the
@@ -258,30 +258,30 @@ sequence of ``u'' and ``l'' annotations following the constant.  If there
 is none, the constant is assumed to be a signed integer.  If there is only
 ``u'', the constant is assumed to be an unsigned integer, etc.}
 
-\rare{-no\_loops}{Drop back edges for loops.  This may make a semantic
+\rare{--no-loops}{Drop back edges for loops.  This may make a semantic
   patch/match run faster, at the cost of not finding matches that wrap
   around loops.}
 
-\developer{-use\_cache}{Use preparsed versions of the C files that are
+\developer{--use-cache}{Use preparsed versions of the C files that are
 stored in a cache.}
 
-\developer{-cache\_prefix}{Specify the directory in which to store 
-preparsed versions of the C files.  This sets {-use\_cache}}
+\developer{--cache-prefix}{Specify the directory in which to store 
+preparsed versions of the C files.  This sets {--use-cache}}
 
-\developer{-cache\_limit}{Specify the maximum number of
+\developer{--cache-limit}{Specify the maximum number of
 preparsed C files to store.  The cache is cleared of all files with names
-ending in .ast\_raw and .depend\_raw on reaching this limit.  Only
-effective if -cache\_prefix is used as well.  This is most useful when
+ending in .ast-raw and .depend-raw on reaching this limit.  Only
+effective if --cache-prefix is used as well.  This is most useful when
 iteration is used to process a file multiple times within a single run of
 Coccinelle.}
 
-\developer{-debug\_cpp, -debug\_lexer, -debug\_etdt,
-  -debug\_typedef}{Various options for debugging the C parser.}
+\developer{--debug-cpp, --debug-lexer, --debug-etdt,
+  --debug-typedef}{Various options for debugging the C parser.}
 
-\developer{-filter\_msg, -filter\_define\_error,
-  -filter\_passed\_level}{Various options for debugging the C parser.}
+\developer{--filter-msg, --filter-define-error,
+  --filter-passed-level}{Various options for debugging the C parser.}
 
-\developer{-only\_return\_is\_error\_exit}{In matching ``{\tt{\ldots}}'' in
+\developer{--only-return-is-error-exit}{In matching ``{\tt{\ldots}}'' in
   a semantic patch or when forall is specified, a rule must match all
   control-flow paths starting from a node matching the beginning of the
   rule.  This is relaxed, however, for error handling code.  Normally, error
@@ -294,60 +294,60 @@ Coccinelle.}
 
 \subsubsection*{Macros and other preprocessor code}
 
-\normal{-macro\_file $\langle$file$\rangle$}{
+\normal{--macro-file $\langle$file$\rangle$}{
   Extra macro definitions to be taken into account when parsing the C
   files.  This uses the provided macro definitions in addition to those in
   the default macro file.}
 
-\normal{-macro\_file\_builtins $\langle$file$\rangle$}{
+\normal{--macro-file-builtins $\langle$file$\rangle$}{
   Builtin macro definitions to be taken into account when parsing the C
   files.  This causes the macro definitions provided in the default macro
   file to be ignored and the ones in the specified file to be used instead.}
 
-\rare{-ifdef\_to\_if,-no\_ifdef\_to\_if}{
-The option {\bf -ifdef\_to\_if}
+\rare{--ifdef-to-if,-no-ifdef-to-if}{
+The option {\bf --ifdef-to-if}
 represents an {\tt \#ifdef} in the source code as a conditional in the
 control-flow graph when doing so represents valid code.  {\bf
--no\_ifdef\_to\_if} disables this feature.  {\bf -ifdef\_to\_if} is the
+-no-ifdef-to-if} disables this feature.  {\bf --ifdef-to-if} is the
 default.
 }
 
-\rare{-use\_if0\_code}{ Normally code under \#if 0 is ignored.  If this
+\rare{--use-if0-code}{ Normally code under \#if 0 is ignored.  If this
 option is set then the code is considered, just like the code under any
 other \#ifdef.}
 
-\developer{-noadd\_typedef\_root}{This seems to reduce the scope of a
+\developer{--noadd-typedef-root}{This seems to reduce the scope of a
   typedef declaration found in the C code.}
 
 \subsubsection*{Include files}
 
-\normal{-recursive\_includes, -all\_includes, -local\_includes,
-  -no\_includes}{ These options control which include files mentioned in a
-  C file are taken into account.  {\bf -recursive\_includes} indicates
+\normal{--recursive-includes, --all-includes, --local-includes,
+  --no-includes}{ These options control which include files mentioned in a
+  C file are taken into account.  {\bf --recursive-includes} indicates
   that all included files mentioned in the .c file(s) or any included files
-  will be processed.  {\bf -all\_includes} indicates that all included
+  will be processed.  {\bf --all-includes} indicates that all included
   files mentioned in the .c file(s) will be processed.  {\bf
-    -local\_includes} indicates that only included files in the current
-  directory will be processed.  {\bf -no\_includes} indicates that no
+    --local-includes} indicates that only included files in the current
+  directory will be processed.  {\bf --no-includes} indicates that no
   included files will be processed.  If the semantic patch contains type
   specifications on expression metavariables, then the default is {\bf
-    -local\_includes}.  Otherwise the default is {\bf -no\_includes}.  At
+    --local-includes}.  Otherwise the default is {\bf --no-includes}.  At
   most one of these options can be specified.}
 
 \normal{-I $\langle$path$\rangle$}{ This option specifies a directory
   in which to find non-local include files.  This option can be used
   several times.}
 
-\rare{-relax\_include\_path}{This option when combined with -all\_includes
+\rare{--relax-include-path}{This option when combined with --all-includes
   causes the search for local
   include files to consider the current directory, even if the include
   patch specifies a subdirectory.  This is really only useful for testing,
-  eg with the option {\bf -testall}}
+  eg with the option {\bf --testall}}
 
-\rare{-c++}{Make an extremely minimal effort to parse C++ code.  Currently,
+\rare{--c++}{Make an extremely minimal effort to parse C++ code.  Currently,
   this is limited to allowing identifiers to contain ``::'', tilde, and
   template invocations.  Consider testing your code first with spatch
-  -type\_c to see if there are any type annotations in the code you are
+  --type-c to see if there are any type annotations in the code you are
   interested in processing.  If not, then it was probably not parsed.}
 
 \section{Application of the semantic patch to the C code}
@@ -355,65 +355,65 @@ other \#ifdef.}
 \subsection{Feedback at the rule level during the application of the
   semantic patch}
 
-\normal{-show\_bindings}{
+\normal{--show-bindings}{
 Show the environments with respect to which each rule is applied and the
 bindings that result from each such application.}
 
-\normal{-show\_dependencies}{ Show the status (matched or unmatched) of the
-rules on which a given rule depends.  {\bf -show\_dependencies} implicitly
-sets {\bf -show\_bindings}, as the values of the dependencies are
+\normal{--show-dependencies}{ Show the status (matched or unmatched) of the
+rules on which a given rule depends.  {\bf --show-dependencies} implicitly
+sets {\bf --show-bindings}, as the values of the dependencies are
 environment-specific.}
 
-\normal{-show\_trying}{
+\normal{--show-trying}{
 Show the name of each program element to which each rule is applied.}
 
-\normal{-show\_transinfo}{
+\normal{--show-transinfo}{
 Show information about each transformation that is performed.
 The node numbers that are referenced are the number of the nodes in the
-control-flow graph, which can be seen using the option {\bf -control\_flow}
-(the initial control-flow graph only) or the option {\bf -show\_flow} (the
+control-flow graph, which can be seen using the option {\bf --control-flow}
+(the initial control-flow graph only) or the option {\bf --show-flow} (the
 control-flow graph before and after each rule application).}
 
-\normal{-show\_misc}{Show some miscellaneous information.}
+\normal{--show-misc}{Show some miscellaneous information.}
 
-\rare{-show\_flow $\langle$file$\rangle$, -show\_flow
+\rare{--show-flow $\langle$file$\rangle$, --show-flow
   $\langle$file$\rangle$:$\langle$function$\rangle$} Show the control-flow
 graph before and after the application of each rule.
 
-\developer{-show\_before\_fixed\_flow}{This is similar to {\bf
-    -show\_flow}, but shows a preliminary version of the control-flow graph.}
+\developer{--show-before-fixed-flow}{This is similar to {\bf
+    --show-flow}, but shows a preliminary version of the control-flow graph.}
 
 \subsection{Feedback at the CTL level during the application of the
   semantic patch}
 
-\normal{-verbose\_engine}{Show a trace of the matching of atomic terms to C
+\normal{--verbose-engine}{Show a trace of the matching of atomic terms to C
   code.}
 
-\rare{-verbose\_ctl\_engine}{Show a trace of the CTL matching process.
+\rare{--verbose-ctl-engine}{Show a trace of the CTL matching process.
   This is unfortunately rather voluminous and not so helpful for someone
   who is not familiar with CTL in general and the translation of SmPL into
   CTL specifically.  This option implicitly sets the option {\bf
-    -show\_ctl\_text}.}
+    --show-ctl-text}.}
 
-\rare{-graphical\_trace}{Create a pdf file containing the control flow
+\rare{--graphical-trace}{Create a pdf file containing the control flow
   graph annotated with the various nodes matched during the CTL matching
   process.  Unfortunately, except for the most simple examples, the output
   is voluminous, and so the option is not really practical for most
   examples.  This requires {\tt dot} (http://www.graphviz.org/) and {\tt
   pdftk}.}
 
-\rare{-gt\_without\_label}{The same as {\bf -graphical\_trace}, but the PDF
+\rare{--gt-without-label}{The same as {\bf --graphical-trace}, but the PDF
   file does not contain the CTL code.}
 
-\rare{-partial\_match}{
+\rare{--partial-match}{
 Report partial matches of the semantic patch on the C file.  This can
   be substantially slower than normal matching.}
 
-\rare{-verbose\_match}{
+\rare{--verbose-match}{
 Report on when CTL matching is not applied to a function or other program
 unit because it does not contain some required atomic pattern.
 This can be viewed as a simpler, more efficient, but less informative
-version of {\bf -partial\_match}.}
+version of {\bf --partial-match}.}
 
 \subsection{Actions during the application of the semantic patch}
 
@@ -429,13 +429,13 @@ version of {\bf -partial\_match}.}
   identifier metavariable can be designated as being virtual by giving it
   the rule name {\tt virtual}.  An example is in demos/vm.coci}
 
-\rare{-allow\_inconsistent\_paths}{Normally, a term that is transformed
+\rare{--allow-inconsistent-paths}{Normally, a term that is transformed
   should only be accessible from other terms that are matched by the
   semantic patch.  This option removes this constraint.  Doing so, is
   unsafe, however, because the properties that hold along the matched path
   might not hold at all along the unmatched path.}
 
-\rare{-disallow\_nested\_exps}{In an expression that contains repeated
+\rare{--disallow-nested-exps}{In an expression that contains repeated
   nested subterms, {\em e.g.} of the form {\tt f(f(x))}, a pattern can
   match a single expression in multiple ways, some nested inside others.
   This option causes the matching process to stop immediately at the
@@ -443,38 +443,38 @@ version of {\bf -partial\_match}.}
   that the pattern {\tt f(E)}, with metavariable {\tt E}, matches with {\tt
     E} as {\tt x} will not be considered.}
 
-\rare{-no\_safe\_expressions}{normally, we check that an expression does
+\rare{--no-safe-expressions}{normally, we check that an expression does
        not match something earlier in the disjunction.  But for large
        disjunctions, this can result in a very big CTL formula.  So this
        option give the user the option to say he doesn't want this feature,
        if that is the case.}
 
-\rare{-pyoutput coccilib.output.Gtk, -pyoutput coccilib.output.Console}{
+\rare{--pyoutput coccilib.output.Gtk, --pyoutput coccilib.output.Console}{
 This controls whether Python output is sent to Gtk or to the console.  {\bf
-  -pyoutput coccilib.output.Console} is the default.  The Gtk option is
+  --pyoutput coccilib.output.Console} is the default.  The Gtk option is
 currently not well supported.}
 
-\developer{-loop}{When there is ``{\tt{\ldots}}'' in the semantic patch,
+\developer{--loop}{When there is ``{\tt{\ldots}}'' in the semantic patch,
   the CTL operator {\sf AU} is used if the current function does not
   contain a loop, and {\sf AW} may be used if it does.  This option causes
   {\sf AW} always to be used.}
 
-\rare{-ocaml\_regexps}{Use the regular expressions provided by the OCaml
+\rare{--ocaml-regexps}{Use the regular expressions provided by the OCaml
   \texttt{Str} library.  This is the default if the PCRE library is not
   available.  Otherwise PCRE regular expressions are used by default.}
 
-\developer{-steps $\langle$int$\rangle$}{
+\developer{--steps $\langle$int$\rangle$}{
 This limits the number of steps performed by the CTL engine to the
 specified number.  This option is unsafe as it might cause a rule to fail
 due to running out of steps rather than due to not matching.}
 
-\developer{-bench $\langle$int$\rangle$}{This collects various information
+\developer{--bench $\langle$int$\rangle$}{This collects various information
   about the operations performed during the CTL matching process.}
 
-\developer{-popl, -popl\_mark\_all, -popl\_keep\_all\_wits}{
-These options use a simplified version of the SmPL language.  {\bf
-  -popl\_mark\_all} and {\bf -popl\_keep\_all\_wits} implicitly set {\bf
-  -popl}.}
+% \developer{--popl, --popl-mark-all, --popl-keep-all-wits}{
+These options use a simplified version of the SmPL language.  {\bf
+%   --popl-mark-all} and {\bf --popl-keep-all-wits} implicitly set {\bf
+%   --popl}.}
 
 \section{Generation of the result}
 
@@ -483,53 +483,53 @@ the differences between the original code and the transformed code.  If
 stars are used in column 0 rather than {\tt -} and {\tt +}, then the {\tt
   -} lines in the diff are the lines that matched the stars.
 
-\normal{-keep\_comments}{Don't remove comments adjacent to removed code.}
+\normal{--keep-comments}{Don't remove comments adjacent to removed code.}
 
-\normal{-linux\_spacing, -smpl\_spacing}{Control the spacing within the code
-  added by the semantic patch.  The option {\bf -linux\_spacing} causes
+\normal{--linux-spacing, --smpl-spacing}{Control the spacing within the code
+  added by the semantic patch.  The option {\bf --linux-spacing} causes
   spatch to follow the conventions of Linux, regardless of the spacing in
   the semantic patch.  This is the default.  The option {\bf
-  -smpl\_spacing} causes spatch to follow the spacing given in the semantic
+  --smpl-spacing} causes spatch to follow the spacing given in the semantic
   patch, within individual lines.}
 
 \rare{-o $\langle$file$\rangle$}{ This causes the transformed code to be
   placed in the file {\tt file}.  A diff is still printed to the standard
   output.  This option only makes sense when {\tt -} and {\tt +} are used.}
 
-\rare{-in\_place}{ Modify the input file to contain the transformed code.
+\rare{--in-place}{ Modify the input file to contain the transformed code.
   A diff is still printed to the standard output.  By default, the input
   file is overwritten when using this option, with no backup.  This option
   only makes sense when {\tt -} and {\tt +} are used.}
 
-\rare{-backup\_suffix}{The suffix of the file to use in making a backup of
+\rare{--backup-suffix}{The suffix of the file to use in making a backup of
   the original file(s).  This suffix should include the leading ``.'', if
   one is desired.  This option only has an effect when the option
-  {\tt -in\_place} is also used.}
+  {\tt --in-place} is also used.}
 
-\rare{-out\_place}{ Store the result of modifying the code in a .cocci\_res
+\rare{--out-place}{ Store the result of modifying the code in a .cocci-res
   file.  A diff is still printed to the standard output.  This option only
   makes sense when {\tt -} and {\tt +} are used.}
 
-\rare{-no\_show\_diff}{ Normally, a diff between the original and transformed
+\rare{--no-show-diff}{ Normally, a diff between the original and transformed
 code is printed on the standard output.  This option causes this not to be
 done.}
 
 \rare{-U}{ Set number of diff context lines.}
 
-\rare{-patch $\langle$path$\rangle$}{The prefix of the pathname of the
+\rare{--patch $\langle$path$\rangle$}{The prefix of the pathname of the
   directory or file name that should dropped from the diff line in the
   generated patch.  This is useful if you want to apply a patch only to a
   subdirectory of a source code tree but want to create a patch that can be
   applied at the root of the source code tree.  An example could be {\tt
-  spatch -sp\_file foo.cocci -dir /var/linuxes/linux-next/drivers -patch
+  spatch --sp-file foo.cocci --dir /var/linuxes/linux-next/drivers --patch
   /var/linuxes/linux-next}.  A trailing {\tt /} is permitted on the
   directory name and has no impact on the result.}
 
-\rare{-save\_tmp\_files}{Coccinelle creates some temporary
+\rare{--save-tmp-files}{Coccinelle creates some temporary
   files in {\tt /tmp} that it deletes after use.  This option causes these
   files to be saved.}
 
-\developer{-debug\_unparsing}{Show some debugging information about the
+\developer{--debug-unparsing}{Show some debugging information about the
   generation of the transformed code.  This has the side-effect of
   deleting the transformed code.}
 
@@ -538,51 +538,52 @@ done.}
 
 \subsection{Version information}
 
-\normal{-version}{ The version of Coccinelle.  No other options are
+\normal{--version}{ The version of Coccinelle.  No other options are
 allowed.}
 
-\normal{-date}{ The date of the current version of Coccinelle. No other
+\normal{--date}{ The date of the current version of Coccinelle. No other
 options are allowed.}
 
 \subsection{Help}
 
-\minimum{-h, -shorthelp}{ The most useful commands.}
+\minimum{--h, --shorthelp}{ The most useful commands.}
 
-\minimum{-help, --help, -longhelp}{ A complete listing of the available
+\minimum{--help, --help, --longhelp}{ A complete listing of the available
 commands.}
 
 \subsection{Controlling the execution of Coccinelle}
 
-\normal{-timeout $\langle$int$\rangle$}{ The maximum time in seconds for
+\normal{--timeout $\langle$int$\rangle$}{ The maximum time in seconds for
   processing a single file.}
 
-\rare{-max $\langle$int$\rangle$}{This option informs Coccinelle of the
+\rare{--max $\langle$int$\rangle$}{This option informs Coccinelle of the
   number of instances of Coccinelle that will be run concurrently.  This
-  option requires {\bf -index}.  It is usually used with {\bf -dir}.}
+  option requires {\bf --index}.  It is usually used with {\bf --dir}.}
 
-\rare{-index $\langle$int$\rangle$}{This option informs Coccinelle of
+\rare{--index $\langle$int$\rangle$}{This option informs Coccinelle of
   which of the concurrent instances is the current one.  This option
-  requires {\bf -max}.}
+  requires {\bf --max}.}
 
-\rare{-mod\_distrib}{When multiple instances of Coccinelle are run in
+\rare{--mod-distrib}{When multiple instances of Coccinelle are run in
   parallel, normally the first instance processes the first $n$ files, the
   second instance the second $n$ files, etc.  With this option, the files
   are distributed among the instances in a round-robin fashion.}
 
-\developer{-debugger}{Option for running Coccinelle from within the OCaml
+\developer{--debugger}{Option for running Coccinelle from within the OCaml
   debugger.}
 
-\developer{-profile}{ Gather timing information about the main Coccinelle
+\developer{--profile}{ Gather timing information about the main Coccinelle
 functions.}
 
-\developer{-disable\_once}{Print various warning messages every time some
+\developer{--disable-once}{Print various warning messages every time some
 condition occurs, rather than only once.}
 
 \subsection{Miscellaneous}
 
-\rare{-quiet}{Suppress most output.  This is the default.}
+\rare{--quiet}{Suppress most output.  This is the default.}
 
-\developer{-pad, -hrule $\langle$dir$\rangle$, -xxx, -l1}{}
+%\developer{--pad, -hrule $\langle$dir$\rangle$, -xxx, -l1}{}
+\developer{--pad, --xxx, --l1}{}
 
 
 %%% Local Variables:
index 4248d2d..fe3ac10 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5e885c6..a885e0e 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 611a946..8a1b7a6 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 894e9f8..8d85543 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -662,6 +664,10 @@ and get_before_e s a =
   | Ast.Define(header,body) ->
       let (body,_) = get_before body [] in
       (Ast.rewrap s (Ast.Define(header,body)), [Ast.Other s])
+  | Ast.AsStmt(stmt,asstmt) ->
+      let (stmt,_) = get_before_e stmt [] in
+      let (asstmt,_) = get_before_e asstmt [] in
+      (Ast.rewrap s (Ast.AsStmt(stmt,asstmt)),[Ast.Other s])
   | Ast.IfThen(ifheader,branch,aft) ->
       let (br,_) = get_before_e branch [] in
       (Ast.rewrap s (Ast.IfThen(ifheader,br,aft)), [Ast.Other s])
@@ -798,6 +804,10 @@ and get_after_e s a =
   | Ast.Define(header,body) ->
       let (body,_) = get_after body a in
       (Ast.rewrap s (Ast.Define(header,body)), [Ast.Other s])
+  | Ast.AsStmt(stmt,asstmt) ->
+      let (stmt,_) = get_after_e stmt [] in
+      let (asstmt,_) = get_after_e asstmt [] in
+      (Ast.rewrap s (Ast.AsStmt(stmt,asstmt)),[Ast.Other s])
   | Ast.IfThen(ifheader,branch,aft) ->
       let (br,_) = get_after_e branch a in
       (Ast.rewrap s (Ast.IfThen(ifheader,br,aft)),[Ast.Other s])
@@ -2386,6 +2396,12 @@ and statement stmt top after quantified minus_quantified
          (Common.union_set mbfvs minus_quantified)
          None llabel slabel true guard in
       quantify guard bfvs (make_seq [define_header; body_code])
+  | Ast.AsStmt(stmt,asstmt) ->
+      ctl_and
+       (statement stmt top after quantified minus_quantified
+          label llabel slabel guard)
+       (statement asstmt top after quantified minus_quantified
+          label llabel slabel guard)
   | Ast.OptStm(stm) ->
       failwith "OptStm should have been compiled away\n"
   | Ast.UniqueStm(stm) -> failwith "arities not yet supported"
index 4a71f6a..56c353b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index f65a100..739b4b7 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -105,9 +107,12 @@ let print_info = function
 
 (* --------------------------------------------------------------------- *)
 
-(* drop all distinguishing information from a term *)
-let strip =
-  let do_nothing r k e = Ast.make_term (Ast.unwrap (k e)) in
+(* drop all distinguishing information from a term except inherited
+   variables, which are used to improve efficiency of matching process *)
+let strip x =
+  let do_nothing r k e =
+    let inh = Ast.get_inherited e in
+    Ast.make_inherited_term (Ast.unwrap (k e)) inh in
   let do_absolutely_nothing r k e = k e in
   let mcode m = Ast.make_mcode(Ast.unwrap_mcode m) in
   let rule_elem r k re =
@@ -126,7 +131,7 @@ let strip =
       do_nothing do_nothing do_nothing do_nothing do_nothing do_nothing
       do_nothing rule_elem do_nothing do_nothing
       do_nothing do_absolutely_nothing in
-  recursor.V.rebuilder_rule_elem
+  recursor.V.rebuilder_rule_elem x
 
 (* --------------------------------------------------------------------- *)
 
@@ -156,9 +161,22 @@ let conj_wrapped x l = conj [List.map (function x -> (1,strip x)) x] l
 (* --------------------------------------------------------------------- *)
 (* the main translation loop *)
 
-let rule_elem re =
+let rec rule_elem re =
   match Ast.unwrap re with
-    Ast.DisjRuleElem(res) -> [[(List.length res,strip re)]]
+    Ast.DisjRuleElem(res) ->
+      (* why was the following done?  ors have to be kept together for
+       efficiency, so they are considered at once and not individually
+        anded with everything else *)
+      let re =
+       let all_inhs = List.map Ast.get_inherited res in
+       let inhs =
+         List.fold_left
+           (function prev ->
+             function inh ->
+               Common.inter_set inh prev)
+           (List.hd all_inhs) (List.tl all_inhs) in
+       Ast.make_inherited_term (Ast.unwrap re) inhs in
+      [[(List.length res,strip re)]]
   | _ -> [[(1,strip re)]]
 
 let conj_one testfn x l =
@@ -241,6 +259,11 @@ and statement testfn mcode tail stmt : 'a list list =
   | Ast.Define(header,body) ->
       conj_one testfn header (statement_list testfn mcode tail body)
 
+  | Ast.AsStmt(stm,asstm) ->
+      conj
+       (statement testfn mcode tail stm)
+       (statement testfn mcode tail asstm)
+
   | Ast.OptStm(stm) -> []
 
   | Ast.UniqueStm(stm) -> statement testfn mcode tail stm
index 4ceb553..0683f90 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index a38b037..e82e717 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -218,7 +220,9 @@ and typeC tya tyb =
   | StructUnion (sua, saopt, sta), StructUnion (sub, sbopt, stb) ->
       (sua =*= sub && saopt =*= sbopt && List.length sta =|= List.length stb)
       >&&>
-      Common.zip sta stb +> List.fold_left
+      (function tin ->
+       (* zip is only safe if the above succeeds *)
+      (Common.zip sta stb +> List.fold_left
         (fun acc ((fielda), (fieldb)) ->
           acc >>= (fun xs ->
             match fielda, fieldb with
@@ -230,8 +234,9 @@ and typeC tya tyb =
               DeclarationField (FieldDeclList (fb, iiptb)) ->
                 let iipt = iipta in (* TODO ?*)
                 (List.length fa =|= List.length fb) >&&>
-
-                Common.zip fa fb +> List.fold_left
+               (function tin ->
+                 (* only executable if the length is correct *)
+                (Common.zip fa fb +> List.fold_left
                   (fun acc2 ((fielda,iia),(fieldb,iib))->
                     let iix = iia in
                     acc2 >>= (fun xs ->
@@ -253,7 +258,7 @@ and typeC tya tyb =
                           )
                       | _,_ -> fail
                     )
-                  ) (return [])
+                  ) (return [])) tin)
                  >>= (fun fx ->
                    return (((DeclarationField
                                (FieldDeclList (List.rev fx,iipt))))::xs)
@@ -265,7 +270,7 @@ and typeC tya tyb =
         ) (return [])
         >>= (fun stx ->
           return (StructUnion (sua, saopt, List.rev stx), iix)
-        )
+        )) tin)
 
 
 
index 63d887d..84151cf 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 469f2cc..260397d 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -76,18 +78,21 @@ let dumb_astcocci_decl = function
  | A.Init (stg, typa, sa, _, expa, _) -> ()
  | A.TyDecl (typa, _)     -> ()
  | A.MacroDecl(fn, _, eas, _, _) -> ()
+ | A.MacroDeclInit(fn, _, eas, _, _, _, _) -> ()
  | A.Ddots(dots,whencode) -> ()
  | A.MetaDecl _ -> ()
  | A.MetaField _ -> ()
  | A.MetaFieldList _ -> ()
+ | A.AsDecl _ -> ()
  | A.Typedef(d,ty1,ty2,pv) -> ()
  | A.DisjDecl xs -> ()
  | A.OptDecl _ | A.UniqueDecl _ -> ()
 
-let dumb_astcocci_initialiser = function
+let dumb_astcocci_initialiser = function (* seems same as the above *)
     A.Init(stg,ty,id,eq,ini,sem) -> ()
   | A.UnInit(stg,ty,id,sem) -> ()
   | A.MacroDecl(fn, _, eas, _, _) -> ()
+  | A.MacroDeclInit(fn, _, eas, _, _, _, _) -> ()
   | A.TyDecl(ty,sem) -> ()
   | A.Typedef(d,ty1,ty2,pv) -> ()
   | A.DisjDecl(decls) -> ()
@@ -95,11 +100,13 @@ let dumb_astcocci_initialiser = function
   | A.MetaDecl(name,_,_) -> ()
   | A.MetaField(name,_,_) -> ()
   | A.MetaFieldList(name,_,_,_) -> ()
+  | A.AsDecl(_,_) -> ()
   | A.OptDecl(decl) -> ()
   | A.UniqueDecl(decl) -> ()
 
 let dumb_astcocci_expr = function
  | A.MetaExpr (ida,_,_, opttypa, _, _) -> ()
+ | A.AsExpr (_,_) -> ()
  | A.Edots (_,_) -> ()
  | A.MetaErr _ -> ()
  | A.Ident ida -> ()
@@ -109,6 +116,7 @@ let dumb_astcocci_expr = function
  | A.Constant (A.Float sa,_,_,_) -> ()
  | A.FunCall (ea1, _, eas, _) -> ()
  | A.Assignment (ea1, opa, ea2, _) -> ()
+ | A.Sequence (ea1, opa, ea2) -> ()
  | A.CondExpr (ea1,_,ea2opt,_,ea3) -> ()
  | A.Postfix (ea, opa) -> ()
  | A.Infix (ea, opa) -> ()
@@ -134,7 +142,8 @@ let dumb_astcocci_expr = function
  | A.OptExp _ -> ()
 
 let dumb_astcocci_fulltype = function
-    A.Type(cv,ty) -> ()
+    A.Type(_,cv,ty) -> ()
+  | A.AsType(_,_) -> ()
   | A.DisjType(types) -> ()
   | A.OptType(ty) -> ()
   | A.UniqueType(ty) -> ()
index 3bff497..9dfe82e 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -201,7 +203,7 @@ type ('a,'b,'c,'d,'e) triples =
       ('b, ('c, 'd) Wrapper_ctl.wrapped_binding) CTL.generic_subst list, 'e)
      CTL.generic_witnesstree list) list
 
-let check_reachability triples cfg =
+let check_reachability rulename triples cfg =
   Hashtbl.clear modified;
   List.iter build_modified triples;
   let formulas = create_formulas() in
@@ -211,11 +213,15 @@ let check_reachability triples cfg =
       then
        if test_formula node ef_formula cfg
        then
-         Printf.printf "warning: node %d may be inconsistently modified\n"
-           node
+         let n = cfg#nodes#find node in
+         Printf.printf
+           "warning: %s, node %d: %s in %s may be inconsistently modified\n"
+           rulename node (snd n) !Flag.current_element
        else ()
       else
+       let n = cfg#nodes#find node in
        failwith
          (Printf.sprintf
-            "node %d reachable by inconsistent control-flow paths" node))
+            "%s: node %d: %s in %s reachable by inconsistent control-flow paths"
+            rulename node (snd n) !Flag.current_element))
     formulas
index a436341..3fc241e 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -34,4 +36,5 @@ type ('a,'b,'c,'d,'e) triples =
      Ast_ctl.generic_witnesstree list) list
 
 val check_reachability :
-    ('a,'b,'c,'d,'e) triples -> Control_flow_c.cflow -> unit
+    string (*rulename*) ->
+      ('a,'b,'c,'d,'e) triples -> Control_flow_c.cflow -> unit
index e203cf3..8dae6dc 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -555,6 +557,7 @@ let one_initialisation_to_affectation x =
 let initialisation_to_affectation decl =
   match decl with
   | B.MacroDecl _ -> F.Decl decl
+  | B.MacroDeclInit _ -> F.Decl decl (* not sure... *)
   | B.DeclList (xs, iis) ->
 
       (* todo?: should not do that if the variable is an array cos
@@ -772,7 +775,7 @@ let satisfies_econstraint c exp : bool =
       (match cst with
       | Ast_c.String (str, _) -> satisfies_regexpconstraint c str
       | Ast_c.MultiString strlist ->
-         warning "Unable to apply a constraint on an multistring constant!"
+         warning "Unable to apply a constraint on a multistring constant!"
       | Ast_c.Char  (char , _) -> satisfies_regexpconstraint c char
       | Ast_c.Int   (int  , _) -> satisfies_regexpconstraint c int
       | Ast_c.Float (float, _) -> satisfies_regexpconstraint c float)
@@ -798,7 +801,16 @@ let list_matcher match_dots rebuild_dots match_comma rebuild_comma
 
           (* '...' can take more or less the beginnings of the arguments *)
               let startendxs =
-               Common.zip (Common.inits ys) (Common.tails ys) in
+               (* if eas is empty there is only one possible match.
+                  the same if eas is just a comma *)
+               match eas with
+                 [] -> [(ys,[])]
+               | [c] when not(ys=[]) &&
+                  (match match_comma c with Some _ -> true | None -> false) ->
+                   let r = List.rev ys in
+                   [(List.rev(List.tl r),[List.hd r])]
+               | _ ->
+                 Common.zip (Common.inits ys) (Common.tails ys) in
              Some
                (startendxs +> List.fold_left (fun acc (startxs, endxs) ->
                  acc >||> (
@@ -1033,6 +1045,12 @@ let rec (expression: (A.expression, Ast_c.expression) matcher) =
    * any checks. Hopefully now have tagged SP technique.
    *)
 
+  | A.AsExpr(exp,asexp), expb ->
+      expression exp expb >>= (fun exp expb ->
+      expression asexp expb >>= (fun asexp expb ->
+       return(
+         ((A.AsExpr(exp,asexp)) +> wa,
+          expb))))
 
   (* old:
    * | A.Edots _, _ -> raise Impossible.
@@ -1136,9 +1154,6 @@ let rec (expression: (A.expression, Ast_c.expression) matcher) =
           ((B.FunCall (eb, ebs),typ), [ib1;ib2])
         ))))))
 
-
-
-
   | A.Assignment (ea1, opa, ea2, simple),
       ((B.Assignment (eb1, opb, eb2), typ),ii) ->
       let (opbi) = tuple_of_list1 ii in
@@ -1153,6 +1168,17 @@ let rec (expression: (A.expression, Ast_c.expression) matcher) =
         ))))
       else fail
 
+  | A.Sequence (ea1, opa, ea2),
+      ((B.Sequence (eb1, eb2), typ),ii) ->
+      let (opbi) = tuple_of_list1 ii in
+        expression ea1 eb1 >>= (fun ea1 eb1 ->
+        expression ea2 eb2 >>= (fun ea2 eb2 ->
+        tokenf opa opbi >>= (fun opa opbi ->
+          return (
+            (A.Sequence (ea1, opa, ea2)) +> wa,
+            ((B.Sequence (eb1, eb2), typ), [opbi])
+        ))))
+
   | A.CondExpr(ea1,ia1,ea2opt,ia2,ea3),((B.CondExpr(eb1,eb2opt,eb3),typ),ii) ->
       let (ib1, ib2) = tuple_of_list2 ii in
       expression ea1 eb1 >>= (fun ea1 eb1 ->
@@ -1753,6 +1779,17 @@ and (declaration: (A.mcodekind * bool * A.declaration,B.declaration) matcher) =
            return ((mckstart, allminus,
                     (A.MetaDecl (ida, keep, inherited))+> A.rewrap decla),
                    declb))
+
+  | A.AsDecl(dec,asdec), decb ->
+      declaration (mckstart, allminus, dec) decb >>=
+      (fun (mckstart, allminus, dec) decb ->
+       let asmckstart = A.CONTEXT(A.NoPos,A.NOTHING) in
+      declaration (asmckstart,false,asdec) decb >>= (fun (_,_,asdec) decb ->
+       return(
+       ((mckstart, allminus,
+         (A.AsDecl(dec,asdec)) +> A.rewrap decla),
+        decb))))
+
   | _, (B.DeclList ([var], iiptvirgb::iifakestart::iisto)) ->
       onedecl allminus decla (var,iiptvirgb,iisto) >>=
       (fun decla (var,iiptvirgb,iisto)->
@@ -1849,7 +1886,37 @@ and (declaration: (A.mcodekind * bool * A.declaration,B.declaration) matcher) =
                  )))))))
       | _ -> fail)
 
-  | _, (B.MacroDecl _ |B.DeclList _) ->      fail
+  | A.MacroDeclInit (sa,lpa,eas,rpa,weqa,inia,enda),
+      B.MacroDeclInit ((sb,ebs,inib),ii) ->
+      let (iisb, lpb, rpb, weqb, iiendb, iifakestart, iistob) =
+        (match ii with
+        |  iisb::lpb::rpb::weqb::iiendb::iifakestart::iisto ->
+            (iisb,lpb,rpb,weqb,iiendb, iifakestart,iisto)
+        |  _ -> raise Impossible
+        ) in
+      (if allminus
+      then minusize_list iistob
+      else return ((), iistob)
+      ) >>= (fun () iistob ->
+
+        X.tokenf_mck mckstart iifakestart >>= (fun mckstart iifakestart ->
+        ident DontKnow sa (sb, iisb) >>= (fun sa (sb, iisb) ->
+        tokenf lpa lpb >>= (fun lpa lpb ->
+        tokenf rpa rpb >>= (fun rpa rpb ->
+        tokenf rpa rpb >>= (fun rpa rpb ->
+        tokenf weqa weqb >>= (fun weqa weqb ->
+        tokenf enda iiendb >>= (fun enda iiendb ->
+        arguments (seqstyle eas) (A.undots eas) ebs >>= (fun easundots ebs ->
+       initialiser inia inib >>= (fun inia inib ->
+        let eas = redots eas easundots in
+
+          return (
+            (mckstart, allminus,
+            (A.MacroDecl (sa,lpa,eas,rpa,enda)) +> A.rewrap decla),
+            (B.MacroDecl ((sb,ebs,true),
+                         [iisb;lpb;rpb;iiendb;iifakestart] ++ iistob))
+          )))))))))))
+  | _, (B.MacroDecl _ |B.MacroDeclInit _ |B.DeclList _) ->      fail
 
 
 and onedecl = fun allminus decla (declb, iiptvirgb, iistob) ->
@@ -1870,7 +1937,8 @@ and onedecl = fun allminus decla (declb, iiptvirgb, iistob) ->
    }, iivirg) ->
 
    (match A.unwrap tya0, typb0 with
-   | A.Type(cv1,tya1), ((qu,il),typb1) ->
+   | A.Type(allminus,cv1,tya1), ((qu,il),typb1) ->
+       (* allminus doesn't seem useful here - nothing done with cv1 *)
 
      (match A.unwrap tya1, typb1 with
      | A.StructUnionDef(tya2, lba, declsa, rba),
@@ -1906,14 +1974,14 @@ and onedecl = fun allminus decla (declb, iiptvirgb, iistob) ->
          let declsa = redots declsa undeclsa in
 
          (match A.unwrap tya2 with
-         | A.Type(cv3, tya3) ->
+         | A.Type(allminus, cv3, tya3) -> (* again allminus not used *)
            (match A.unwrap tya3 with
            | A.MetaType(ida,keep, inherited) ->
 
                fullType tya2 fake_typeb >>= (fun tya2 fake_typeb ->
                 let tya1 =
                   A.StructUnionDef(tya2,lba,declsa,rba)+> A.rewrap tya1 in
-                let tya0 = A.Type(cv1, tya1) +> A.rewrap tya0 in
+                let tya0 = A.Type(allminus, cv1, tya1) +> A.rewrap tya0 in
 
 
                 let typb1 = B.StructUnion (sub,sbopt, declsb),
@@ -1943,7 +2011,7 @@ and onedecl = fun allminus decla (declb, iiptvirgb, iistob) ->
 
                let tya1 = A.StructUnionDef(tya2,lba,declsa,rba)+> A.rewrap tya1
                in
-               let tya0 = A.Type(cv1, tya1) +> A.rewrap tya0 in
+               let tya0 = A.Type(allminus, cv1, tya1) +> A.rewrap tya0 in
 
                match structnameb with
                | _nQ, (B.StructUnionName (sub, s), [iisub;iisbopt]) ->
@@ -2187,6 +2255,13 @@ and (initialiser: (A.initialiser, Ast_c.initialiser) matcher) =  fun ia ib ->
             ))
          )
 
+    | A.AsInit(ini,asini), inib ->
+       initialiser ini inib >>= (fun ini inib ->
+       initialiser asini inib >>= (fun asini inib ->
+         return(
+         ((A.AsInit(ini,asini)) +> A.rewrap ia,
+          inib))))
+
     | (A.InitExpr expa, ib) ->
         (match A.unwrap expa, ib with
         | A.Edots (mcode, None), ib    ->
@@ -2342,7 +2417,8 @@ and str_initialisers = fun allminus ias (ibs, iicomma) ->
   let ibs_split   = resplit_initialiser ibs iicomma in
 
   if need_unordered_initialisers ibs
-  then initialisers_unordered2 allminus ias_unsplit ibs_split >>=
+  then
+    initialisers_unordered2 allminus ias_unsplit ibs_split >>=
     (fun ias_unsplit ibs_split ->
       return (
       split_icomma ias_unsplit,
@@ -2358,6 +2434,7 @@ and ar_initialisers = fun ias (ibs, iicomma) ->
       (List.map (function (elem,comma) -> [Left elem; Right [comma]]) ibs) in
   initialisers_ordered2 ias ibs >>=
   (fun ias ibs_split ->
+
     let ibs,iicomma =
       match List.rev ibs_split with
        (Right comma)::rest -> (Ast_c.unsplit_comma (List.rev rest),comma)
@@ -2487,7 +2564,7 @@ and (struct_field: (A.declaration, B.field) matcher) = fun fa fb ->
           pr2_once "warning: bitfield not handled by ast_cocci";
           fail
       | B.Simple (None, typb) ->
-          pr2_once "warning: unamed struct field not handled by ast_cocci";
+          pr2_once "warning: unnamed struct field not handled by ast_cocci";
           fail
       | B.Simple (Some nameidb, typb) ->
 
@@ -2588,7 +2665,7 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) =
    X.optional_qualifier_flag (fun optional_qualifier ->
    X.all_bound (A.get_inherited typa) >&&>
    match A.unwrap typa, typb with
-   | A.Type(cv,ty1), ((qu,il),ty2) ->
+   | A.Type(allminus,cv,ty1), ((qu,il),ty2) ->
 
        if qu.B.const && qu.B.volatile
        then
@@ -2607,11 +2684,15 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) =
        (* "iso-by-absence" *)
        | None ->
            let do_stuff () =
-             fullTypebis ty1 ((qu,il), ty2) >>= (fun ty1 fullty2 ->
-               return (
-                 (A.Type(None, ty1)) +> A.rewrap typa,
-                 fullty2
-               ))
+             fullTypebis ty1 ((qu,il), ty2) >>= (fun ty1 ((qu,il), ty2) ->
+             (if allminus
+            then minusize_list il
+            else return ((), il)
+            ) >>= (fun () il ->
+              return (
+                 (A.Type(allminus, None, ty1)) +> A.rewrap typa,
+                 ((qu,il), ty2)
+               )))
            in
            (match optional_qualifier, qu.B.const || qu.B.volatile with
            | false, false -> do_stuff ()
@@ -2634,7 +2715,7 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) =
                tokenf x i1 >>= (fun x i1 ->
                fullTypebis ty1 (Ast_c.nQ,ty2) >>= (fun ty1 (_, ty2) ->
                  return (
-                   (A.Type(Some x, ty1)) +> A.rewrap typa,
+                   (A.Type(allminus, Some x, ty1)) +> A.rewrap typa,
                    ((qu, [i1]), ty2)
                  )))
 
@@ -2642,7 +2723,7 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) =
                tokenf x i1 >>= (fun x i1 ->
                fullTypebis ty1 (Ast_c.nQ,ty2) >>= (fun ty1 (_, ty2) ->
                  return (
-                   (A.Type(Some x, ty1)) +> A.rewrap typa,
+                   (A.Type(allminus, Some x, ty1)) +> A.rewrap typa,
                    ((qu, [i1]), ty2)
                  )))
 
@@ -2650,6 +2731,13 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) =
            )
        )
 
+  | A.AsType(ty,asty), tyb ->
+      fullType ty tyb >>= (fun ty tyb ->
+      fullType asty tyb >>= (fun asty tyb ->
+       return(
+         ((A.AsType(ty,asty)) +> A.rewrap typa,
+          tyb))))
+
   | A.DisjType typas, typb ->
       typas +>
       List.fold_left (fun acc typa -> acc >|+|> (fullType typa typb)) fail
@@ -2691,7 +2779,7 @@ and simulate_signed ta basea stringsa signaopt tb baseb ii rebuilda =
       (* In ii there is a list, sometimes of length 1 or 2 or 3.
        * And even if in baseb we have a Signed Int, that does not mean
        * that ii is of length 2, cos Signed is the default, so if in signa
-       * we have Signed explicitely ? we cant "accrocher" this mcode to
+       * we have Signed explicitly ? we cant "accrocher" this mcode to
        * something :( So for the moment when there is signed in cocci,
        * we force that there is a signed in c too (done in pattern.ml).
        *)
@@ -2821,11 +2909,11 @@ and simulate_signed_meta ta basea signaopt tb baseb ii rebuilda =
 
       let match_to_type rebaseb =
        sign signaopt signbopt >>= (fun signaopt iisignbopt ->
-       let fta = A.rewrap basea (A.Type(None,basea)) in
+       let fta = A.rewrap basea (A.Type(false(*don't know*),None,basea)) in
        let ftb = Ast_c.nQ,(B.BaseType (rebaseb), iibaseb) in
        fullType fta ftb >>= (fun fta (_,tb) ->
          (match A.unwrap fta,tb with
-           A.Type(_,basea), (B.BaseType baseb, ii) ->
+           A.Type(_,_,basea), (B.BaseType baseb, ii) ->
              return (
              (rebuilda (basea, signaopt)) +> A.rewrap ta,
              (B.BaseType (baseb), iisignbopt ++ ii)
@@ -2977,7 +3065,7 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) =
 
 
 
-    (* todo: handle the iso on optionnal size specifification ? *)
+    (* todo: handle the iso on optional size specification ? *)
     | A.Array (typa, ia1, eaopt, ia2), (B.Array (ebopt, typb), ii) ->
         let (ib1, ib2) = tuple_of_list2 ii in
         fullType typa typb >>= (fun typa typb ->
@@ -3025,7 +3113,7 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) =
                the part that matched *)
             let rec loop s =
               match A.unwrap s with
-                A.Type(None,ty) ->
+                A.Type(allminus,None,ty) ->
                   (match A.unwrap ty with
                     A.StructUnionName(sua, None) ->
                       (match (term sua, sub) with
@@ -3035,7 +3123,7 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) =
                       (fun _ _ ->
                         tokenf sua iisub >>= (fun sua iisub ->
                           let ty =
-                            A.Type(None,
+                            A.Type(allminus,None,
                                    A.StructUnionName(sua, None) +> A.rewrap ty)
                               +> A.rewrap s in
                           return (ty,[iisub])))
@@ -3129,12 +3217,13 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) =
                the part that matched *)
             let rec loop s =
               match A.unwrap s with
-                A.Type(None,ty) ->
+                A.Type(allminus,None,ty) ->
                   (match A.unwrap ty with
                     A.EnumName(sua, None) ->
                       tokenf sua iisub >>= (fun sua iisub ->
                         let ty =
-                          A.Type(None,A.EnumName(sua, None) +> A.rewrap ty)
+                          A.Type(allminus,None,A.EnumName(sua, None) +>
+                                 A.rewrap ty)
                             +> A.rewrap s in
                         return (ty,[iisub]))
                   | _ -> fail)
@@ -3406,7 +3495,7 @@ and compatible_type a (b,local) =
        loop (a,b)
     | Type_cocci.FunctionPointer a, _ ->
        failwith
-         "TODO: function pointer type doesn't store enough information to determine compatability"
+         "TODO: function pointer type doesn't store enough information to determine compatibility"
     | Type_cocci.Array   a, (qub, (B.Array (eopt, b),ii)) ->
       (* no size info for cocci *)
        loop (a,b)
@@ -3882,11 +3971,6 @@ let rec (rule_elem_node: (A.rule_elem, Control_flow_c.node) matcher) =
       | _ -> raise Impossible
       )
 
-
-
-
-
-
   | A.Decl (mckstart,allminus,decla), F.Decl declb ->
       declaration (mckstart,allminus,decla) declb >>=
        (fun (mckstart,allminus,decla) declb ->
index cf0f53c..8f3d482 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 65ed6a9..54b6f60 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -493,10 +495,10 @@ let rec nub ls =
 let (mysat2:
   Lib_engine.model ->
   (Lib_engine.ctlcocci * (pred list list)) ->
-  (Lib_engine.mvar list*Lib_engine.metavars_binding) ->
+  (string (*rulename*) * Lib_engine.mvar list*Lib_engine.metavars_binding) ->
   (Lib_engine.numbered_transformation_info * bool *
      Lib_engine.metavars_binding * Lib_engine.metavars_binding list)) =
-  fun (flow, label, states) ctl (used_after, binding) ->
+  fun (flow, label, states) ctl (rulename, used_after, binding) ->
     let binding2 = metavars_binding_to_binding2 binding in
     let (triples,(trans_info2, returned_any_states, used_after_envs)) =
       WRAPPED_ENGINE.satbis (flow, label, states) ctl
@@ -504,7 +506,7 @@ let (mysat2:
     in
     if not (!Flag_parsing_cocci.sgrep_mode || !Flag.sgrep_mode2 ||
             !Flag_matcher.allow_inconsistent_paths)
-    then Check_reachability.check_reachability triples flow;
+    then Check_reachability.check_reachability rulename triples flow;
     let (trans_info2,used_after_fresh_envs) =
       Postprocess_transinfo.process used_after binding2 trans_info2 in
     let used_after_envs =
index e2a5793..a3aaac2 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -42,7 +44,7 @@ type pred = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 val mysat :
   Lib_engine.model ->
   (Lib_engine.ctlcocci * (pred list list)) ->
-  (Lib_engine.mvar list * Lib_engine.metavars_binding) ->
+  (string (*rulename*) * Lib_engine.mvar list * Lib_engine.metavars_binding)->
   (Lib_engine.numbered_transformation_info *  bool *
      Lib_engine.metavars_binding * Lib_engine.metavars_binding list)
 
index 13ec0ac..d2f453d 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index a6de606..e22a3ad 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index afb8789..6e94c93 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 100dead..e02011b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 6383da7..22aced1 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5919dc9..0d12801 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 1fd1d49..f85ac5b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 1fd1d49..f85ac5b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 680ff46..c2c759f 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index bf874c9..3757dc8 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 93756f9..0289a17 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 81cbcda..049b785 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 09f3fa5..a63b44b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 6c964c9..cc73a50 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 602f118..437d371 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 7442026..c5689b0 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index f9eeaff..464f92b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 71e36a3..a55ce20 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 13f369e..e50d088 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 6d325fe..71c6583 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -28,7 +30,7 @@
 ##############################################################################
 TARGET=globals
 
-SRC= flag.ml config.ml iteration.ml regexp.ml
+SRC= flag.ml config.ml iteration.ml $(REGEXP_FILE) regexp.ml
 
 LIBS=
 INCLUDEDIRS= ../commons  $(PCREDIR)
index 588c9ce..9ec8712 100644 (file)
@@ -1,4 +1,4 @@
-let version = "1.0.0-rc9"
+let version = "1.0.0-rc11"
 
 let path =
   try (Sys.getenv "COCCINELLE_HOME")
index 9300545..6b58465 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5d135b6..5d282c7 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 8e0d0ea..098b9c0 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
deleted file mode 120000 (symlink)
index 0cccca85ac924240077f91f5d8539b0981ec50e5..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-regexp_pcre.ml
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..4753c58603a209eca04fd557c3269f48f885f337
--- /dev/null
@@ -0,0 +1,27 @@
+(*
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
+ * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
+ * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
+ * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
+ * This file is part of Coccinelle.
+ *
+ * Coccinelle is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, according to version 2 of the License.
+ *
+ * Coccinelle is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Coccinelle.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The authors reserve the right to distribute this or future versions of
+ * Coccinelle under other licenses.
+ *)
+
+
+include Regexp_pcre
diff --git a/globals/regexp.ml.in b/globals/regexp.ml.in
new file mode 100644 (file)
index 0000000..f45bcac
--- /dev/null
@@ -0,0 +1 @@
+include @REGEXP_FILE@
index 221e780..44e0551 100644 (file)
@@ -1,29 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
- * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
- * This file is part of Coccinelle.
- *
- * Coccinelle is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, according to version 2 of the License.
- *
- * Coccinelle is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Coccinelle.  If not, see <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
-(*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 558a47b..3823e0a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -32,6 +34,5 @@ let regexp string =
 
 let string_match regexp string =
   try
-       Str.search_forward regexp string 0;
-       true
+    Str.search_forward regexp string 0 >= 0
   with _ -> false
diff --git a/main.ml b/main.ml
index 2dca9d2..eb58708 100644 (file)
--- a/main.ml
+++ b/main.ml
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -250,7 +252,7 @@ let run_profile p =
 
 let usage_msg =
   "Usage: " ^ basename Sys.argv.(0) ^
-    " -sp_file <SP> <infile> [-o <outfile>] [-iso_file <iso>] [options]" ^
+    " --sp-file <SP> <infile> [-o <outfile>] [--iso-file <iso>] [options]" ^
     "\n" ^ "Options are:"
 
 (* forward reference trick *)
@@ -268,76 +270,76 @@ let long_usage_func  = ref (fun () -> ())
  * use -longhelp to see them.
  *)
 let short_options = [
-  "-sp_file",  Arg.Set_string cocci_file,
+  "--sp-file",  Arg.Set_string cocci_file,
   " <file> the semantic patch file";
 
   "-o", Arg.Set_string output_file,
   "   <file> the output file";
-  "-in_place", Arg.Set inplace_modif,
+  "--in-place", Arg.Set inplace_modif,
   "   do the modification on the file directly";
-  "-backup_suffix", Arg.String (function s -> backup_suffix := Some s),
+  "--backup-suffix", Arg.String (function s -> backup_suffix := Some s),
   "   suffix to use when making a backup for inplace";
-  "-out_place", Arg.Set outplace_modif,
+  "--out-place", Arg.Set outplace_modif,
   "   store modifications in a .cocci_res file";
 
   "-U", Arg.Int (fun n -> Flag_parsing_c.diff_lines := Some (i_to_s n)),
   "  set number of diff context lines";
-  "-partial_match",        Arg.Set Flag_ctl.partial_match,
+  "--partial-match",        Arg.Set Flag_ctl.partial_match,
   "    report partial matches of the SP on the C file";
 
-  "-iso_file", Arg.Set_string Config.std_iso,
+  "--iso-file", Arg.Set_string Config.std_iso,
   " <file> (default=" ^ !Config.std_iso ^")";
-  "-macro_file", Arg.Set_string macro_file,
+  "--macro-file", Arg.Set_string macro_file,
   " <file>";
-  "-macro_file_builtins", Arg.Set_string Config.std_h,
+  "--macro-file-builtins", Arg.Set_string Config.std_h,
   " <file> (default=" ^ !Config.std_h ^ ")";
 
-  "-recursive_includes",
+  "--recursive-includes",
   Arg.Unit (function _ -> FC.include_options := FC.I_REALLY_ALL_INCLUDES),
   "  causes all available include files, both those included in the C file(s) and those included in header files, to be used";
-  "-all_includes",
+  "--all-includes",
   Arg.Unit (function _ -> FC.include_options := FC.I_ALL_INCLUDES),
   "  causes all available include files included in the C file(s) to be used";
-  "-no_includes",
+  "--no-includes",
   Arg.Unit (function _ -> FC.include_options := FC.I_NO_INCLUDES),
   "  causes not even local include files to be used";
-  "-local_includes",
+  "--local-includes",
   Arg.Unit (function _ -> FC.include_options := FC.I_NORMAL_INCLUDES),
   "  causes local include files to be used";
-  "-ignore_unknown_options", Arg.Set ignore_unknown_opt,
+  "--ignore-unknown-options", Arg.Set ignore_unknown_opt,
   "    For integration in a toolchain (must be set before the first unknown option)";
-  "-include_headers", Arg.Set include_headers,
+  "--include-headers", Arg.Set include_headers,
   "    process header files independently";
   "-I",   Arg.String (fun x ->
                        FC.include_path:= x::!FC.include_path
                     ),
   "  <dir> containing the header files (optional)";
 
-  "-preprocess", Arg.Set preprocess,
+  "--preprocess", Arg.Set preprocess,
   " run the C preprocessor before applying the semantic match";
 
   "-c", Arg.Set compat_mode, " gcc/cpp compatibility mode";
 
-  "-dir", Arg.Set dir,
+  "--dir", Arg.Set dir,
   "    <dir> process all files in directory recursively";
 
-  "-use_glimpse", Arg.Unit (function _ -> Flag.scanner := Flag.Glimpse),
+  "--use-glimpse", Arg.Unit (function _ -> Flag.scanner := Flag.Glimpse),
   "    works with -dir, use info generated by glimpseindex";
-  "-use_google", Arg.String (function s -> Flag.scanner := Flag.Google s),
+  "--use-google", Arg.String (function s -> Flag.scanner := Flag.Google s),
   "    find relevant files using google code search";
-  "-use_idutils", Arg.Unit (function s -> Flag.scanner := Flag.IdUtils),
+  "--use-idutils", Arg.Unit (function s -> Flag.scanner := Flag.IdUtils),
   "    find relevant files using id-utils";
-  "-patch",
+  "--patch",
     Arg.String (function s -> Flag.patch := Some (Cocci.normalize_path s)),
   ("    <dir> path name with respect to which a patch should be created\n"^
    "    \"\" for a file in the current directory");
-  "-kbuild_info", Arg.Set_string kbuild_info,
+  "--kbuild-info", Arg.Set_string kbuild_info,
   "    <file> improve -dir by grouping related c files";
-  "-pyoutput", Arg.Set_string Flag.pyoutput,
+  "--pyoutput", Arg.Set_string Flag.pyoutput,
   "    Sets output routine: Standard values: <coccilib.output.Gtk|coccilib.output.Console>";
 
 
-  "-version",   Arg.Unit (fun () ->
+  "--version",   Arg.Unit (fun () ->
     let withpython = if Pycocci.python_support then "with" else "without" in
     let whichregexp =
       if !Regexp.pcre_support then "with PCRE support"
@@ -348,18 +350,18 @@ let short_options = [
   ),
     "  guess what";
 
-  "-date",   Arg.Unit (fun () ->
+  "--date",   Arg.Unit (fun () ->
     pr2 "version: $Date$";
     raise (Common.UnixExit 0)
     ),
   "   guess what";
 
-  "-shorthelp", Arg.Unit (fun () ->
+  "--shorthelp", Arg.Unit (fun () ->
     !short_usage_func();
     raise (Common.UnixExit 0)
   ),
   "    see short list of options";
-  "-longhelp", Arg.Unit (fun () ->
+  "--longhelp", Arg.Unit (fun () ->
     !long_usage_func();
     raise (Common.UnixExit 0)
     ),
@@ -383,10 +385,11 @@ let other_options = [
   "aliases and obsolete options",
   "",
   [
-    "-sp", Arg.Set_string cocci_file,     " short option of -sp_file";
-    "-iso", Arg.Set_string Config.std_iso,   " short option of -iso_file";
+    "--sp", Arg.Unit (function _ -> failwith "impossible"),
+    " command line semantic patch";
+    "--iso", Arg.Set_string Config.std_iso,   " short option of --iso-file";
 
-    "-cocci_file", Arg.Set_string cocci_file,
+    "--cocci-file", Arg.Set_string cocci_file,
     "   <file> the semantic patch file";
 (*     "-c", Arg.Set_string cocci_file,     " short option of -sp_file"; *)
   ];
@@ -394,25 +397,25 @@ let other_options = [
   "most useful show options",
   "",
   [
-    "-show_diff"           , Arg.Set FC.show_diff, " ";
-    "-no_show_diff"           , Arg.Clear FC.show_diff, " ";
-    "-force_diff"           , Arg.Set FC.force_diff,
+    "--show-diff"           , Arg.Set FC.show_diff, " ";
+    "--no-show-diff"           , Arg.Clear FC.show_diff, " ";
+    "--force-diff"           , Arg.Set FC.force_diff,
        "show diff even if only spacing changes";
-    "-show_flow"              , Arg.Set FC.show_flow,        " ";
+    "--show-flow"              , Arg.Set FC.show_flow,        " ";
     (* works in conjunction with -show_ctl_text *)
-    "-ctl_inline_let",
+    "--ctl-inline-let",
     Arg.Unit
     (function _ -> FC.show_ctl_text := true; FC.inline_let_ctl := true), " ";
-    "-ctl_show_mcodekind",
+    "--ctl-show-mcodekind",
     Arg.Unit
     (function _ -> FC.show_ctl_text := true; FC.show_mcodekind_in_ctl := true),
     " ";
-    "-show_bindings",        Arg.Set FC.show_binding_in_out, " ";
-    "-show_transinfo",    Arg.Set Flag.show_transinfo, " ";
-    "-show_misc",         Arg.Set Flag.show_misc, " ";
-    "-show_trying",          Arg.Set Flag.show_trying,
+    "--show-bindings",        Arg.Set FC.show_binding_in_out, " ";
+    "--show-transinfo",    Arg.Set Flag.show_transinfo, " ";
+    "--show-misc",         Arg.Set Flag.show_misc, " ";
+    "--show-trying",          Arg.Set Flag.show_trying,
     " show the name of each function being processed";
-    "-show_dependencies",
+    "--show-dependencies",
     Arg.Unit (function _ -> FC.show_dependencies := true;
       FC.show_binding_in_out := true),
     " show the dependencies related to each rule";
@@ -421,54 +424,54 @@ let other_options = [
   "verbose subsystems options",
   "",
   [
-    "-verbose_ctl_engine",
+    "--verbose-ctl-engine",
     Arg.Unit (function _ ->
       Flag_ctl.verbose_ctl_engine := true; FC.show_ctl_text := true) , " ";
-    "-verbose_match",        Arg.Set Flag_ctl.verbose_match, " ";
-    "-verbose_engine",       Arg.Set Flag_matcher.debug_engine,    " ";
-    "-graphical_trace",      Arg.Set Flag_ctl.graphical_trace, "  generate a pdf file representing the matching process";
-    "-gt_without_label",
+    "--verbose-match",        Arg.Set Flag_ctl.verbose_match, " ";
+    "--verbose-engine",       Arg.Set Flag_matcher.debug_engine,    " ";
+    "--graphical-trace",      Arg.Set Flag_ctl.graphical_trace, "  generate a pdf file representing the matching process";
+    "--gt-without-label",
      Arg.Unit (function _ ->
        Flag_ctl.graphical_trace := true; Flag_ctl.gt_without_label := true),
-       "  remove graph label (requires option -graphical_trace)";
+       "  remove graph label (requires option -graphical-trace)";
 
-    "-parse_error_msg", Arg.Set Flag_parsing_c.show_parsing_error, " ";
-    "-verbose_parsing",
+    "--parse-error-msg", Arg.Set Flag_parsing_c.show_parsing_error, " ";
+    "--verbose-parsing",
        Arg.Unit (fun _ -> Flag_parsing_c.verbose_parsing := true;
         Flag_parsing_c.show_parsing_error := true), " ";
-    "-type_error_msg",  Arg.Set Flag_parsing_c.verbose_type, " ";
+    "--type-error-msg",  Arg.Set Flag_parsing_c.verbose_type, " ";
     (* could also use Flag_parsing_c.options_verbose *)
   ];
 
   "other show options",
   "",
   [
-    "-show_c"                 , Arg.Set FC.show_c,           " ";
-    "-show_cocci"             , Arg.Set FC.show_cocci,       " ";
-    "-show_before_fixed_flow" , Arg.Set FC.show_before_fixed_flow,  " ";
-    "-show_ctl_tex"           , Arg.Set FC.show_ctl_tex,     " ";
-    "-show_ctl_text"          , Arg.Set FC.show_ctl_text,     " ";
-    "-show_SP"             ,    Arg.Set Flag_parsing_cocci.show_SP,  " ";
+    "--show-c"                 , Arg.Set FC.show_c,           " ";
+    "--show-cocci"             , Arg.Set FC.show_cocci,       " ";
+    "--show-before-fixed-flow" , Arg.Set FC.show_before_fixed_flow,  " ";
+    "--show-ctl-tex"           , Arg.Set FC.show_ctl_tex,     " ";
+    "--show-ctl-text"          , Arg.Set FC.show_ctl_text,     " ";
+    "--show-SP"             ,    Arg.Set Flag_parsing_cocci.show_SP,  " ";
   ];
 
 
   "debug C parsing/unparsing",
   "",
   [
-    "-debug_cpp",          Arg.Set  Flag_parsing_c.debug_cpp, " ";
-    "-debug_lexer",        Arg.Set  Flag_parsing_c.debug_lexer , " ";
-    "-debug_etdt",         Arg.Set  Flag_parsing_c.debug_etdt , "  ";
-    "-debug_typedef",      Arg.Set  Flag_parsing_c.debug_typedef, "  ";
+    "--debug-cpp",          Arg.Set  Flag_parsing_c.debug_cpp, " ";
+    "--debug-lexer",        Arg.Set  Flag_parsing_c.debug_lexer , " ";
+    "--debug-etdt",         Arg.Set  Flag_parsing_c.debug_etdt , "  ";
+    "--debug-typedef",      Arg.Set  Flag_parsing_c.debug_typedef, "  ";
 
-    "-filter_msg",         Arg.Set  Flag_parsing_c.filter_msg ,
+    "--filter-msg",         Arg.Set  Flag_parsing_c.filter_msg ,
     "  filter some cpp message when the macro is a \"known\" cpp construct";
-    "-filter_define_error",     Arg.Set Flag_parsing_c.filter_define_error,"  ";
-    "-filter_msg_define_error", Arg.Set Flag_parsing_c.filter_msg_define_error,
+    "--filter-define-error",     Arg.Set Flag_parsing_c.filter_define_error,"  ";
+    "--filter-msg-define-error", Arg.Set Flag_parsing_c.filter_msg_define_error,
     "  filter the error msg";
-    "-filter_passed_level",     Arg.Set_int Flag_parsing_c.filter_passed_level,"  ";
+    "--filter-passed-level",     Arg.Set_int Flag_parsing_c.filter_passed_level,"  ";
 (*  debug cfg doesn't seem to have any effect, so drop it as an option *)
-(*  "-debug_cfg",          Arg.Set Flag_parsing_c.debug_cfg , "  "; *)
-    "-debug_unparsing",         Arg.Set  Flag_parsing_c.debug_unparsing, "  ";
+(*  "--debug_cfg",          Arg.Set Flag_parsing_c.debug_cfg , "  "; *)
+    "--debug-unparsing",         Arg.Set  Flag_parsing_c.debug_unparsing, "  ";
 
   ];
   (* could use Flag_parsing_c.options_debug_with_title instead *)
@@ -478,36 +481,36 @@ let other_options = [
   "",
   [
     (* todo: other profile ? *)
-    "-quiet",   Arg.Unit (fun () -> run_profile quiet_profile), " ";
-    "-very_quiet",   Arg.Unit (fun () -> run_profile very_quiet_profile), " ";
-    "-debug",   Arg.Unit (fun () -> run_profile debug_profile), " ";
-    "-pad",     Arg.Unit (fun () -> run_profile pad_profile),   " ";
+    "--quiet",   Arg.Unit (fun () -> run_profile quiet_profile), " ";
+    "--very-quiet",   Arg.Unit (fun () -> run_profile very_quiet_profile), " ";
+    "--debug",   Arg.Unit (fun () -> run_profile debug_profile), " ";
+    "--pad",     Arg.Unit (fun () -> run_profile pad_profile),   " ";
 
   ];
 
   "bench options",
   "",
   [
-    "-profile", Arg.Unit (function () -> Common.profile := Common.PALL) ,
+    "--profile", Arg.Unit (function () -> Common.profile := Common.PALL) ,
     "   gather timing information about the main coccinelle functions";
-    "-bench", Arg.Int (function x -> Flag_ctl.bench := x),
+    "--bench", Arg.Int (function x -> Flag_ctl.bench := x),
     "   <level> for profiling the CTL engine";
-    "-timeout", Arg.Int (fun x -> FC.timeout := Some x),
+    "--timeout", Arg.Int (fun x -> FC.timeout := Some x),
     "   <sec> timeout in seconds";
-    "-steps", Arg.Int (fun x -> Flag_ctl.steps := Some x),
+    "--steps", Arg.Int (fun x -> Flag_ctl.steps := Some x),
     "   max number of model checking steps per code unit";
-    "-iso_limit", Arg.Int (fun x -> Flag_parsing_cocci.iso_limit := Some x),
+    "--iso-limit", Arg.Int (fun x -> Flag_parsing_cocci.iso_limit := Some x),
     "   max depth of iso application";
-    "-no_iso_limit", Arg.Unit (fun _ -> Flag_parsing_cocci.iso_limit := None),
+    "--no-iso-limit", Arg.Unit (fun _ -> Flag_parsing_cocci.iso_limit := None),
     "   disable limit on max depth of iso application";
-    "-track_iso", Arg.Set Flag.track_iso_usage,
+    "--track-iso", Arg.Set Flag.track_iso_usage,
     "   gather information about isomorphism usage";
-    "-disable_iso",
+    "--disable-iso",
     Arg.String
     (fun s -> Flag_parsing_cocci.disabled_isos :=
       s :: !Flag_parsing_cocci.disabled_isos),
     "   disable a specific isomorphism";
-    "-profile_iso",
+    "--profile-iso",
     Arg.Unit
     (function () ->
       Common.profile :=
@@ -521,155 +524,155 @@ let other_options = [
   "change of algorithm options",
   "",
   [
-    "-popl", Arg.Set FC.popl,
+(*    "--popl", Arg.Set FC.popl,
     "    simplified SmPL, for the popl paper";
 
-    "-popl_mark_all",
+    "--popl_mark_all",
     Arg.Unit
     (function _ -> FC.popl := true; Flag_popl.mark_all := true),
     "    simplified SmPL, for the popl paper";
 
-    "-popl_keep_all_wits",
+    "--popl_keep_all_wits",
     Arg.Unit
     (function _ -> FC.popl := true; Flag_popl.keep_all_wits := true),
     "    simplified SmPL, for the popl paper";
 
-    "-hrule", Arg.String
+    "--hrule", Arg.String
     (function s ->
       Flag.make_hrule := Some s; FC.include_options := FC.I_NO_INCLUDES),
     "    semantic patch generation";
-
-    "-keep_comments", Arg.Set Flag_parsing_c.keep_comments,
+*)
+    "--keep-comments", Arg.Set Flag_parsing_c.keep_comments,
     "   keep comments around removed code";
 
-    "-loop",              Arg.Set Flag_ctl.loop_in_src_code,    " ";
-    "-no_loops",          Arg.Set Flag_parsing_c.no_loops,
+    "--loop",              Arg.Set Flag_ctl.loop_in_src_code,    " ";
+    "--no-loops",          Arg.Set Flag_parsing_c.no_loops,
     "   drop all back edges derived from looping constructs - unsafe";
-    "-no_gotos",          Arg.Set Flag_parsing_c.no_gotos,
+    "--no-gotos",          Arg.Set Flag_parsing_c.no_gotos,
     "   drop all jumps derived from gotos - unsafe";
-    "-no_saved_typedefs", Arg.Clear Flag_cocci.use_saved_typedefs,
+    "--no-saved-typedefs", Arg.Clear Flag_cocci.use_saved_typedefs,
     "   drop all inferred typedefs from one parse of some code to the next";
 
-    "-ocaml_regexps", Arg.Clear Regexp.pcre_support,
+    "--ocaml-regexps", Arg.Clear Regexp.pcre_support,
     "   use OCaml Str regular expressions for constraints";
 
-    "-l1",                Arg.Clear Flag_parsing_c.label_strategy_2, " ";
-    "-ifdef_to_if",       Arg.Set FC.ifdef_to_if,
+    "--l1",                Arg.Clear Flag_parsing_c.label_strategy_2, " ";
+    "--ifdef-to-if",       Arg.Set FC.ifdef_to_if,
     "   convert ifdef to if (experimental)";
-    "-no_ifdef_to_if",              Arg.Clear FC.ifdef_to_if,
+    "--no-ifdef-to-if",              Arg.Clear FC.ifdef_to_if,
     "   convert ifdef to if (experimental)";
 
-    "-disable_multi_pass", Arg.Set Flag_parsing_c.disable_multi_pass, " ";
+    "--disable-multi-pass", Arg.Set Flag_parsing_c.disable_multi_pass, " ";
 
-    "-noif0_passing",      Arg.Clear Flag_parsing_c.if0_passing,
+    "--noif0-passing",      Arg.Clear Flag_parsing_c.if0_passing,
     " ";
-    "-noadd_typedef_root", Arg.Clear Flag_parsing_c.add_typedef_root, " ";
+    "--noadd-typedef-root", Arg.Clear Flag_parsing_c.add_typedef_root, " ";
     (* could use Flag_parsing_c.options_algo instead *)
 
 
-    "-disallow_nested_exps", Arg.Set Flag_matcher.disallow_nested_exps,
+    "--disallow-nested-exps", Arg.Set Flag_matcher.disallow_nested_exps,
        " disallow an expresion pattern from matching a term and its subterm";
-    "-disable_worth_trying_opt", Arg.Clear FC.worth_trying_opt,
+    "--disable-worth-trying-opt", Arg.Clear FC.worth_trying_opt,
     "  ";
-    "-only_return_is_error_exit",
+    "--only-return-is-error-exit",
     Arg.Set Flag_matcher.only_return_is_error_exit,
     "if this flag is not set, then break and continue are also error exits";
     (* the following is a hack to make it easier to add code in sgrep-like
        code, essentially to compensate for the fact that we don't have
        any way of printing things out *)
-    "-allow_inconsistent_paths",
+    "--allow-inconsistent-paths",
     Arg.Set Flag_matcher.allow_inconsistent_paths,
     "   if this flag is set don't check for inconsistent paths; dangerous";
-    "-no_safe_expressions",
+    "--no-safe-expressions",
     Arg.Set Flag_matcher.no_safe_expressions,
     "  make an expression disjunction not prioritise the topmost disjunct";
-    "-int_bits", Arg.Int Flag_parsing_c.set_int_bits,
+    "--int-bits", Arg.Int Flag_parsing_c.set_int_bits,
     "  the number of bits in an unsigned int";
-    "-long_bits", Arg.Int Flag_parsing_c.set_long_bits,
+    "--long-bits", Arg.Int Flag_parsing_c.set_long_bits,
     "  the number of bits in an unsigned long";
-    "-linux_spacing", Arg.Unit Flag_parsing_c.set_linux_spacing,
+    "--linux-spacing", Arg.Unit Flag_parsing_c.set_linux_spacing,
     "  spacing of + code follows the conventions of Linux";
-    "-smpl_spacing", Arg.Unit Flag_parsing_c.set_smpl_spacing,
+    "--smpl-spacing", Arg.Unit Flag_parsing_c.set_smpl_spacing,
     "  spacing of + code follows the semantic patch";
     "-D", Arg.String Flag.set_defined_virtual_rules,
     "  indicate that a virtual rule should be considered to be matched";
-    "-c++", Arg.Set Flag.c_plus_plus,
+    "--c++", Arg.Set Flag.c_plus_plus,
     "  make a small attempt to parse C++ files"
   ];
 
   "misc options",
   "",
   [
-    "-debugger",           Arg.Set Common.debugger,
+    "--debugger",           Arg.Set Common.debugger,
     "   option to set if launch spatch in ocamldebug";
-    "-disable_once",       Arg.Set Common.disable_pr2_once,
+    "--disable-once",       Arg.Set Common.disable_pr2_once,
     "   to print more messages";
-    "-show_trace_profile", Arg.Set Common.show_trace_profile,
+    "--show-trace-profile", Arg.Set Common.show_trace_profile,
     "   show trace";
-    "-save_tmp_files",     Arg.Set Common.save_tmp_files,   " ";
+    "--save-tmp-files",     Arg.Set Common.save_tmp_files,   " ";
   ];
 
   "concurrency",
   "",
   [
-    "-index",       Arg.Int (function x -> distrib_index := Some x) ,
+    "--index",       Arg.Int (function x -> distrib_index := Some x) ,
     "   the processor to use for this run of spatch";
-    "-max",         Arg.Int (function x -> distrib_max := Some x) ,
+    "--max",         Arg.Int (function x -> distrib_max := Some x) ,
     "   the number of processors available";
-    "-mod_distrib", Arg.Set mod_distrib,
+    "--mod-distrib", Arg.Set mod_distrib,
     "   use mod to distribute files among the processors";
   ];
 
   "pad options",
   "",
   [
-    "-use_cache", Arg.Set Flag_parsing_c.use_cache,
+    "--use-cache", Arg.Set Flag_parsing_c.use_cache,
     "   use .ast_raw pre-parsed cached C file";
-    "-cache_prefix",
+    "--cache_prefix",
     Arg.String (function s ->
       Flag_parsing_c.cache_prefix := Some s;
       Flag_parsing_c.use_cache := true),
-    "   directory of cached ASTs, sets -use_cache";
+    "   directory of cached ASTs, sets -use-cache";
     (* could use Flag_parsing_c.options_pad instead *)
-    "-cache_limit",
+    "--cache-limit",
       Arg.Int (function n ->
        Flag_parsing_c.cache_limit := Some n),
-    "   maximum number of cached ASTs, sets -use_cache";
+    "   maximum number of cached ASTs, sets -use-cache";
   ];
 
 
 
   "test mode and test options (works with tests/ or .ok files)",
-  "The test options don't work with the -sp_file and so on.",
+  "The test options don't work with the --sp-file and so on.",
   [
-    "-test",    Arg.Set test_mode,
+    "--test",    Arg.Set test_mode,
     "   <file> launch spatch on tests/file.[c,cocci]";
-    "-testall", Arg.Set test_all,
+    "--testall", Arg.Set test_all,
     "   launch spatch on all files in tests/ having a .res";
-    "-test_okfailed", Arg.Set test_okfailed,
+    "--test-okfailed", Arg.Set test_okfailed,
     "    generates .{ok,failed,spatch_ok} files using .res files";
-    "-test_regression_okfailed", Arg.Set test_regression_okfailed,
+    "--test-regression-okfailed", Arg.Set test_regression_okfailed,
     "    process the .{ok,failed,spatch_ok} files in current dir";
 
-    "-compare_with_expected", Arg.Set compare_with_expected,
+    "--compare-with-expected", Arg.Set compare_with_expected,
     "   use also file.res";
-    "-expected_score_file", Arg.Set_string expected_score_file,
+    "--expected-score-file", Arg.Set_string expected_score_file,
     "   which score file to compare with in -testall";
-    "-relax_include_path", Arg.Set FC.relax_include_path,
+    "--relax-include-path", Arg.Set FC.relax_include_path,
     " ";
   ];
 
   "action mode",
-  ("The action options don't work with the -sp_file and so on." ^ "\n" ^
+  ("The action options don't work with the --sp-file and so on." ^ "\n" ^
    "It's for the other (internal) uses of the spatch program."
   ),
 
     (* -token_c, -parse_c, etc  *)
   ((Common.options_of_actions action (Test_parsing_c.actions())) ++
     [
-    (let s = "-parse_cocci"  in s, Arg.Unit (fun () -> action := s),
+    (let s = "--parse-cocci"  in s, Arg.Unit (fun () -> action := s),
     "   <file>");
-    (let s = "-compare_c"  in s, Arg.Unit (fun () -> action := s),
+    (let s = "--compare-c"  in s, Arg.Unit (fun () -> action := s),
     "   <file1> <file2>");
     ]);
 ]
@@ -734,7 +737,7 @@ let short_usage () =
   Common.short_usage usage_msg short_options;
   pr2 "";
   pr2 "Example of use:";
-  pr2 "  ./spatch -sp_file foo.cocci foo.c -o /tmp/newfoo.c";
+  pr2 "  ./spatch --sp-file foo.cocci foo.c -o /tmp/newfoo.c";
   pr2 "";
  end
 
@@ -833,7 +836,7 @@ let rec main_action xs =
   | _ -> failwith "only one .cocci file allowed");
   Iteration.base_file_list := xs;
   let rec toploop = function
-      [] -> raise Impossible
+      [] -> failwith "no C files provided"
     | x::xs ->
       (* a more general solution would be to use
        * Common.files_of_dir_or_files (x::xs)
@@ -843,7 +846,7 @@ let rec main_action xs =
          dir := (Common.is_directory x);
        
           if !cocci_file =$= ""
-          then failwith "I need a cocci file,  use -sp_file <file>";
+          then failwith "I need a cocci file,  use --sp-file <file>";
          
          if !dir && !Flag.patch =*= None
          then
@@ -945,6 +948,9 @@ let rec main_action xs =
              let res =
                infiles +> List.map (fun cfiles ->
                  pr2 ("HANDLING: " ^ (join " " cfiles));
+                 (*pr2 (List.hd(Common.cmd_to_list "free -m | grep Mem"));*)
+                 flush stderr;
+                   
                  Common.timeout_function_opt !FC.timeout (fun () ->
                    Common.report_if_take_time 10 (join " " cfiles) (fun () ->
                       try
@@ -1045,6 +1051,12 @@ and generate_outfiles outfiles x (* front file *) xs (* other files *) =
           ("-o can not be applied because there are multiple " ^
            "modified files"))
 
+let fix_chars s =
+  if (String.length s) > 2 && String.get s 0 = '-'
+      && not (String.get s 1 = '-')
+  then "-"^(String.concat "-" (Str.split (Str.regexp_string "_") s))
+  else s
+
 (*****************************************************************************)
 (* The coccinelle main entry point *)
 (*****************************************************************************)
@@ -1052,10 +1064,18 @@ let main () =
   begin
     let arglist = Array.to_list Sys.argv in
     let arglist = Command_line.command_line arglist in
-    
+    let arglist = List.map fix_chars arglist in
+
+    let contains_cocci =
+      (* rather a hack... don't want to think about all possible options *)
+      List.exists
+       (function x -> Filename.check_suffix x ".cocci")
+       arglist &&
+      not (List.mem "--parse-cocci" arglist) in
     if not (null (Common.inter_set arglist
-                   ["-cocci_file";"-sp_file";"-sp";"-test";"-testall";
-                      "-test_okfailed";"-test_regression_okfailed"]))
+                   ["--cocci-file";"--sp-file";"--sp";"--test";"--testall";
+                      "--test-okfailed";"--test-regression-okfailed"]))
+       or contains_cocci
     then run_profile quiet_profile;
     
     let args = ref [] in
@@ -1065,6 +1085,19 @@ let main () =
     (* this call can set up many global flag variables via the cmd line *)
     arg_parse2 (Arg.align all_options) (fun x -> args := x::!args) usage_msg
       (Array.of_list arglist);
+    args :=
+      List.filter
+       (function arg ->
+         if Filename.check_suffix arg ".cocci"
+         then
+           begin
+             (if !cocci_file = ""
+             then cocci_file := arg
+             else failwith "only one .cocci file allowed");
+             false
+           end
+         else true)
+       !args;
     
     (* julia hack so that one can override directories specified on
        * the command line. *)
@@ -1157,13 +1190,13 @@ let main () =
     | xs when List.mem !action (Common.action_list all_actions) ->
         Common.do_action !action xs all_actions
 
-    | [file] when !action =$= "-parse_cocci" ->
-       Testing.test_parse_cocci file
+    | [] when !action =$= "--parse-cocci" ->
+       Testing.test_parse_cocci !cocci_file
 
      (* I think this is used by some scripts in some Makefile for our
       * big-tests. So dont remove.
       *)
-    | [file1;file2] when !action =$= "-compare_c" ->
+    | [file1;file2] when !action =$= "--compare-c" ->
        Test_parsing_c.test_compare_c file1 file2 (* result = unix code *)
 
     (* could add the Test_parsing_c.test_actions such as -parse_c & co *)
index 52c44f2..3579620 100644 (file)
@@ -7,7 +7,7 @@
 
 TARGET=cocciocaml
 
-SRC=coccilib.ml ocamlcocci_aux.ml prepare_ocamlcocci.ml run_ocamlcocci.ml
+SRC=coccilib.ml ocamlcocci_aux.ml $(OCAMLCOCCI_FILE) prepare_ocamlcocci.ml run_ocamlcocci.ml
 
 #LIBS=../commons/commons.cma ../parsing_c/parsing_c.cma
 #INCLUDES= -I ../commons -I ../parsing_c
deleted file mode 120000 (symlink)
index 59536b4ecad2f53d90fd6bbb489a64c8cb257e8c..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-yes_prepare_ocamlcocci.ml
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..94bc873ac8950ae1fac338824a9adf82e72fd3b5
--- /dev/null
@@ -0,0 +1 @@
+include Yes_prepare_ocamlcocci
diff --git a/ocaml/prepare_ocamlcocci.ml.in b/ocaml/prepare_ocamlcocci.ml.in
new file mode 100644 (file)
index 0000000..06f66db
--- /dev/null
@@ -0,0 +1 @@
+include @OCAMLCOCCI_FILE@
index e620465..b62c388 100644 (file)
@@ -517,6 +517,8 @@ and declaration =
   (* cppext: *)
     (* bool is true if there is a ; at the end *)
   | MacroDecl of (string * argument wrap2 list * bool) wrap (* fakestart *)
+  | MacroDeclInit of
+      (string * argument wrap2 list * initialiser) wrap (* fakestart *)
 
      and onedecl =
        { v_namei: (name * v_init) option;
index c56014c..cdb5df1 100644 (file)
@@ -22,7 +22,7 @@ let common_h   = ref (mk_macro_path ~cocci_path:!path "common_macros.h")
 
 let cmdline_flags_macrofile () =
   [
-    "-macro_file_builtins", Arg.Set_string std_h,
+    "--macro-file-builtins", Arg.Set_string std_h,
     " <file> (default=" ^ !std_h ^ ")";
   ]
 
@@ -47,7 +47,7 @@ let std_envir = ref (Filename.concat !path "config/envos/environment_splint.h")
 
 let cmdline_flags_envfile () =
   [
-    "-env_file", Arg.Set_string std_envir,
+    "--env-file", Arg.Set_string std_envir,
     " <file> (default=" ^ !std_envir ^ ")";
   ]
 
@@ -87,22 +87,22 @@ let show_flow_labels = ref true
 
 let cmdline_flags_verbose () =
   [
-    "-no_verbose_parsing", Arg.Clear verbose_parsing , "  ";
-    "-no_verbose_lexing", Arg.Clear verbose_lexing , "  ";
-    "-no_verbose_annotater", Arg.Clear verbose_annotater , "  ";
+    "--no-verbose-parsing", Arg.Clear verbose_parsing , "  ";
+    "--no-verbose-lexing", Arg.Clear verbose_lexing , "  ";
+    "--no-verbose-annotater", Arg.Clear verbose_annotater , "  ";
 
-    "-no_parse_error_msg", Arg.Clear verbose_parsing, " ";
-    "-no_type_error_msg",  Arg.Clear verbose_type, " ";
+    "--no-parse-error-msg", Arg.Clear verbose_parsing, " ";
+    "--no-type-error-msg",  Arg.Clear verbose_type, " ";
 
 
-    "-filter_msg",      Arg.Set  filter_msg ,
+    "--filter-msg",      Arg.Set  filter_msg ,
     "  filter some cpp message when the macro is a \"known\" cpp construct";
-    "-filter_msg_define_error",Arg.Set filter_msg_define_error,
+    "--filter-msg-define-error",Arg.Set filter_msg_define_error,
     "  filter the error msg";
 
-    "-filter_define_error",Arg.Set filter_define_error,
+    "--filter-define-error",Arg.Set filter_define_error,
     "  filter the error, which will not be added in the stat";
-    "-filter_passed_level",Arg.Set_int filter_passed_level,"  ";
+    "--filter-passed-level",Arg.Set_int filter_passed_level,"  ";
   ]
 
 
@@ -124,13 +124,13 @@ let debug_cfg = ref false
 (*   "debug C parsing/unparsing", "" *)
 let cmdline_flags_debugging () =
   [
-  "-debug_cpp",          Arg.Set  debug_cpp, " ";
-  "-debug_lexer",        Arg.Set  debug_lexer , " ";
-  "-debug_etdt",         Arg.Set  debug_etdt , "  ";
-  "-debug_typedef",      Arg.Set  debug_typedef, "  ";
+  "--debug-cpp",          Arg.Set  debug_cpp, " ";
+  "--debug-lexer",        Arg.Set  debug_lexer , " ";
+  "--debug-etdt",         Arg.Set  debug_etdt , "  ";
+  "--debug-typedef",      Arg.Set  debug_typedef, "  ";
 
-  "-debug_cfg",          Arg.Set debug_cfg , "  ";
-  "-debug_unparsing",      Arg.Set  debug_unparsing, "  ";
+  "--debug-cfg",          Arg.Set debug_cfg , "  ";
+  "--debug-unparsing",      Arg.Set  debug_unparsing, "  ";
   ]
 
 (*****************************************************************************)
@@ -140,8 +140,8 @@ let cmdline_flags_debugging () =
 let check_annotater = ref true
 let cmdline_flags_checks () =
   [
-  "-disable_check_annotater",          Arg.Clear  check_annotater, " ";
-  "-enable_check_annotater",          Arg.Set  check_annotater, " ";
+  "--disable-check-annotater",          Arg.Clear  check_annotater, " ";
+  "--enable-check-annotater",          Arg.Set  check_annotater, " ";
   ]
 
 (*****************************************************************************)
@@ -153,7 +153,7 @@ let label_strategy_2 = ref false
 
 let cmdline_flags_algos () =
   [
-    "-l1",                Arg.Clear label_strategy_2, " ";
+    "--l1",                Arg.Clear label_strategy_2, " ";
   ]
 
 (*****************************************************************************)
@@ -171,17 +171,17 @@ let add_typedef_root = ref true
 
 let cmdline_flags_parsing_algos () = [
 
-    "-directive_passing",              Arg.Set cpp_directive_passing,
+    "--directive-passing",              Arg.Set cpp_directive_passing,
     "   pass most cpp directives, especially when inside function";
-    "-ifdef_passing",              Arg.Set ifdef_directive_passing,
+    "--ifdef-passing",              Arg.Set ifdef_directive_passing,
     "   pass ifdef directives ";
 
-    "-noif0_passing",   Arg.Clear if0_passing,
+    "--noif0-passing",   Arg.Clear if0_passing,
     " ";
-    "-noadd_typedef_root",   Arg.Clear add_typedef_root, " ";
-    "-noadd_typedef",   Arg.Set disable_add_typedef, " ";
+    "--noadd-typedef-root",   Arg.Clear add_typedef_root, " ";
+    "--noadd-typedef",   Arg.Set disable_add_typedef, " ";
 
-    "-disable_multi_pass", Arg.Set disable_multi_pass, " ";
+    "--disable-multi-pass", Arg.Set disable_multi_pass, " ";
 ]
 
 (*****************************************************************************)
@@ -201,7 +201,7 @@ let cmdline_flags_other () =
     "-U", Arg.Int (fun n -> diff_lines := Some (Common.i_to_s n)),
     "  set number of diff context lines";
 
-    "-use_cache", Arg.Set use_cache,
+    "--use-cache", Arg.Set use_cache,
     "   use .ast_raw pre-parsed cached C file";
   ]
 
index bea0efc..15f43a7 100644 (file)
@@ -1062,7 +1062,7 @@ let parse_cache file =
   if not !Flag_parsing_c.use_cache
   then parse_print_error_heuristic None None file
   else
-  let _ = pr2 "TOFIX: use_cache is not sensitive to changes in the considered macros, include files, etc" in
+  let _ = pr2_once "TOFIX: use_cache is not sensitive to changes in the considered macros, include files, etc" in
   let need_no_changed_files =
     (* should use Sys.argv.(0), would be safer. *)
 
@@ -1089,17 +1089,17 @@ let parse_cache file =
       |        (Some limit,Some prefix) ->
          let count =
            Common.cmd_to_list
-             (Printf.sprintf
-                "test -e %s && ls %s/*.ast_raw %s/*.depend_raw | wc -l"
-                prefix prefix prefix) in
+             (Printf.sprintf "test -e %s && find %s -name \"*_raw\" | wc -l"
+                prefix prefix) in
          match count with
            [c] ->
              if int_of_string c >= limit
              then
                let _ =
                  Sys.command
-                   (Printf.sprintf "/bin/rm -r %s/*.ast_raw %s/*.depend_raw"
-                      prefix prefix) in
+                   (Printf.sprintf
+                      "find %s -name \"*_raw\" -exec /bin/rm {} \\;"
+                      prefix) in
                ()
          | _ -> ());
       (* recompute *)
index 6095239..1de46f6 100644 (file)
@@ -1362,6 +1362,19 @@ decl2:
        MacroDecl ((fst $3, $5, true), [snd $3;$4;$6;$7;fakeInfo();$1;$2])}
 
 
+ | TMacroDecl TOPar argument_list TCPar teq initialize TPtVirg
+     { function _ ->
+       MacroDeclInit ((fst $1, $3, $6), [snd $1;$2;$4;$5;$7;fakeInfo()]) }
+ | Tstatic TMacroDecl TOPar argument_list TCPar teq initialize TPtVirg
+     { function _ ->
+       MacroDeclInit ((fst $2, $4, $7),[snd $2;$3;$5;$6;$8;fakeInfo();$1]) }
+ | Tstatic TMacroDeclConst TMacroDecl TOPar argument_list TCPar
+     teq initialize TPtVirg
+     { function _ ->
+       MacroDeclInit
+        ((fst $3, $5, $8), [snd $3;$4;$6;$7;$9;fakeInfo();$1;$2])}
+
+
 /*(*-----------------------------------------------------------------------*)*/
 decl_spec2:
  | storage_class_spec      { {nullDecl with storageD = (fst $1, [snd $1]) } }
index f590219..374b496 100644 (file)
@@ -1644,6 +1644,10 @@ let pointer = function
   | TAnd _ when !Flag.c_plus_plus -> true
   | _ -> false
 
+let ident_or_star = function
+    TIdent _ -> true
+  | x -> pointer x
+
 (* This function is inefficient, because it will look over a K&R header,
 or function prototype multiple times.  At least when we see a , and are in a
 parameter list, we know we will eventually see a close paren, and it
@@ -1986,13 +1990,14 @@ let lookahead2 ~pass next before =
    *)
 
   (*  (xx) yy *)
-  | (TIdent (s, i1)::TCPar i2::(TIdent (_,i3)|TInt (_,i3))::_ ,
+  | (TIdent (s, i1)::TCPar i2::(TIdent (_,i3)|TInt (_,i3))::after::_ ,
     (TOPar info)::x::_)
-    when not (TH.is_stuff_taking_parenthized x) &&
-      Ast_c.line_of_info i2 =|= Ast_c.line_of_info i3
+    when not (TH.is_stuff_taking_parenthized x) (* &&
+      Ast_c.line_of_info i2 =|= Ast_c.line_of_info i3 - why useful?
+      *)
       && ok_typedef s
+      && not (ident_or_star after) (* possible K&R declaration *)
       ->
-
       msg_typedef s i1 29; LP.add_typedef_root s;
       (*TOPar info*)
       TypedefIdent (s, i1)
index aeaf84d..d200825 100644 (file)
@@ -38,6 +38,7 @@ type 'a printer = 'a -> unit
 type pretty_printers = {
   expression      : Ast_c.expression printer;
   arg_list        : (Ast_c.argument Ast_c.wrap2 list) printer;
+  arg             : Ast_c.argument printer;
   statement       : Ast_c.statement printer;
   decl            : Ast_c.declaration printer;
   field           : Ast_c.field printer;
@@ -919,8 +920,25 @@ let mk_pretty_printers
 
        pr_elem rp;
 
-    | (DeclList (_, _) | (MacroDecl _)) -> raise Impossible
+    | MacroDeclInit
+       ((s, es, ini), iis::lp::rp::eq::iiend::ifakestart::iisto) ->
+       pr_elem ifakestart;
+       iisto +> List.iter pr_elem; (* static and const *)
+       pr_elem iis;
+       pr_elem lp;
+       es +> List.iter (fun (e, opt) ->
+          assert (List.length opt <= 1);
+          opt +> List.iter pr_elem;
+          pp_argument e;
+       );
+
+       pr_elem rp;
+       pr_elem eq;
+       pp_init ini;
+       pr_elem iiend;
 
+    | (DeclList (_, _) | (MacroDecl _) | (MacroDeclInit _)) ->
+       raise Impossible
 
 (* ---------------------- *)
 and pp_init (init, iinit) =
@@ -1311,6 +1329,7 @@ and pp_init (init, iinit) =
 
   { expression = pp_expression;
     arg_list   = pp_arg_list;
+    arg        = pp_argument;
     statement  = pp_statement;
     decl       = pp_decl;
     field      = pp_field;
@@ -1376,6 +1395,9 @@ let pp_expression_gen ~pr_elem ~pr_space =
 let pp_arg_list_gen ~pr_elem ~pr_space =
   (pp_elem_sp pr_elem pr_space).arg_list
 
+let pp_arg_gen ~pr_elem ~pr_space =
+  (pp_elem_sp pr_elem pr_space).arg
+
 let pp_statement_gen ~pr_elem ~pr_space =
   (pp_elem_sp pr_elem pr_space).statement
 
index 0ea3d2e..b9434f0 100644 (file)
@@ -9,6 +9,7 @@ type 'a printer = 'a -> unit
 type pretty_printers = {
   expression      : Ast_c.expression printer;
   arg_list        : (Ast_c.argument Ast_c.wrap2 list) printer;
+  arg             : Ast_c.argument printer;
   statement       : Ast_c.statement printer;
   decl            : Ast_c.declaration printer;
   field           : Ast_c.field printer;
@@ -37,6 +38,8 @@ val pp_expression_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
   Ast_c.expression printer
 val pp_arg_list_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
   (Ast_c.argument Ast_c.wrap2 list) printer
+val pp_arg_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
+  Ast_c.argument printer
 val pp_decl_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
   Ast_c.declaration printer
 val pp_field_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
index 9150a8a..02c66bc 100644 (file)
@@ -483,55 +483,55 @@ let test_xxx a  =
 (*****************************************************************************)
 
 let actions () = [
-  "-tokens_c", "   <file>",
+  "--tokens-c", "   <file>",
   Common.mk_action_1_arg test_tokens_c;
-  "-parse_c", "   <file or dir>",
+  "--parse-c", "   <file or dir>",
   Common.mk_action_n_arg test_parse_c;
-  "-parse_h", "   <file or dir>",
+  "--parse-h", "   <file or dir>",
   Common.mk_action_n_arg test_parse_h;
-  "-parse_ch", "   <file or dir>",
+  "--parse-ch", "   <file or dir>",
   Common.mk_action_n_arg test_parse_ch;
-  "-parse_i", "   <file or dir>",
+  "--parse-i", "   <file or dir>",
   Common.mk_action_n_arg test_parse_i;
 
-  "-parse", "   <file or dir>",
+  "--parse", "   <file or dir>",
   Common.mk_action_n_arg test_parse;
 
-  "-show_flow", "   <file or file:function>",
+  "--show-flow", "   <file or file:function>",
   Common.mk_action_1_arg (local_test_cfg true);
-  "-control_flow", "   <file or file:function>",
+  "--control-flow", "   <file or file:function>",
   Common.mk_action_1_arg (local_test_cfg true);
-  "-control_flow_to_file", "   <file or file:function>",
+  "--control-flow-to-file", "   <file or file:function>",
   Common.mk_action_1_arg (local_test_cfg false);
-  "-test_cfg_ifdef", " <file>",
+  "--test-cfg-ifdef", " <file>",
   Common.mk_action_1_arg test_cfg_ifdef;
-  "-parse_unparse", "   <file>",
+  "--parse-unparse", "   <file>",
   Common.mk_action_1_arg test_parse_unparse;
-(*  "-parse_and_print_sexp", "   <file>",
+(*  "--parse-and-print-sexp", "   <file>",
     Common.mk_action_1_arg parse_and_print_sexp;*)
-  "-type_c", "   <file>",
+  "--type-c", "   <file>",
   Common.mk_action_1_arg test_type_c;
-  "-compare_c", "   <file1> <file2>",
+  "--compare-c", "   <file1> <file2>",
   Common.mk_action_2_arg test_compare_c (* result is in unix code *);
-  "-comment_annotater_c", "   <file>",
+  "--comment-annotater-c", "   <file>",
   Common.mk_action_1_arg test_comment_annotater;
 
-  "-compare_c_hardcoded", "  ",
+  "--compare-c-hardcoded", "  ",
   Common.mk_action_0_arg test_compare_c_hardcoded;
 
-  "-test_attributes", " <file>",
+  "--test-attributes", " <file>",
   Common.mk_action_1_arg test_attributes;
-  "-test_cpp", " <file>",
+  "--test-cpp", " <file>",
   Common.mk_action_1_arg test_cpp;
 
-  "-extract_macros", " <file or dir>",
+  "--extract-macros", " <file or dir>",
   Common.mk_action_1_arg (extract_macros ~selection:false) ;
 
-  "-extract_macros_select", " <file or dir>",
+  "--extract-macros-select", " <file or dir>",
   Common.mk_action_1_arg (extract_macros ~selection:true);
 
 
-  "-xxx", "   <file1> <>",
+  "--xxx", "   <file1> <>",
   Common.mk_action_n_arg test_xxx;
 ]
 
index a8dc275..5ce7284 100644 (file)
@@ -1132,7 +1132,7 @@ let rec visit_toplevel ~just_add_in_env ~depth elem =
                   end
             );
           );
-      | MacroDecl _ ->
+      | MacroDecl _ | MacroDeclInit _ ->
           if need_annotate_body
           then k d
       );
index 250b18e..7acaf6b 100644 (file)
@@ -243,7 +243,7 @@ let type_of_decl decl =
           (* TODO normalize ? what if nested structure definition ? *)
           v_type
       )
-  | Ast_c.MacroDecl _ ->
+  | Ast_c.MacroDecl _ | Ast_c.MacroDeclInit _ ->
       pr2_once "not handling MacroDecl type yet";
       raise Todo
 
@@ -268,7 +268,7 @@ let structdef_of_decl decl =
           | _ -> raise Impossible
           )
       )
-  | Ast_c.MacroDecl _ -> raise Impossible
+  | Ast_c.MacroDecl _ | Ast_c.MacroDeclInit _ -> raise Impossible
 
 
 
index d4c54b7..c331b34 100644 (file)
@@ -1,6 +1,7 @@
 (* Yoann Padioleau, Julia Lawall
  *
- * Copyright (C) 2010, University of Copenhagen DIKU and INRIA.
+ * Copyright (C) 2012, INRIA.
+ * Copyright (C) 2010, 2011, University of Copenhagen DIKU and INRIA.
  * Copyright (C) 2006, 2007, 2008, 2009 Ecole des Mines de Nantes and DIKU
  *
  * This program is free software; you can redistribute it and/or
@@ -788,7 +789,7 @@ let adjust_after_paren toks =
     match rest with
       ((T2(_,Min _,_)) as a)::rerest -> (* minus *)
        a :: search_minus true rerest
-    | ((T2(_,Ctx,_)) as a)::rerest when str_of_token2 a = "," ->
+    | ((T2(_,Ctx,_)) as a)::rerest when seen_minus && str_of_token2 a = "," ->
        (* comma after ( will be deleted, so consider it as minus code
           already *)
        a :: search_minus true rerest
@@ -1100,15 +1101,16 @@ let rec adjust_indentation xs =
        (match !_current_tabbing with
          [] -> aux started xs
        | _::new_tabbing ->
+            let s = String.concat "" new_tabbing in
            _current_tabbing := new_tabbing;
-           aux started xs)
+           Cocci2 (s,-1,-1,-1,None)::aux started xs)
     (* border between existing code and cocci code *)
     | ((T2 (tok,_,_)) as x)::((Cocci2("\n",_,_,_,_)) as y)::xs
       when str_of_token2 x =$= "{" ->
        x::aux true (y::Indent_cocci2::xs)
     | ((Cocci2 _) as x)::((T2 (tok,_,_)) as y)::xs
       when str_of_token2 y =$= "}" ->
-       x::aux started (y::Unindent_cocci2 true::xs)
+       x::aux started (Unindent_cocci2 true::y::xs)
     (* starting the body of the function *)
     | ((T2 (tok,_,_)) as x)::xs when str_of_token2 x =$= "{" ->  x::aux true xs
     | ((Cocci2("{",_,_,_,_)) as a)::xs -> a::aux true xs
index ca08fd9..1236a72 100644 (file)
@@ -295,6 +295,9 @@ let rec expression e =
   | Ast.Assignment(left,op,right,_) ->
       expression left; pr_space(); mcode assignOp op;
       pr_space(); expression right
+  | Ast.Sequence(left,op,right) ->
+      expression left; mcode print_string op;
+      pr_space(); expression right
   | Ast.CondExpr(exp1,why,exp2,colon,exp3) ->
       expression exp1; pr_space(); mcode print_string why;
       print_option (function e -> pr_space(); expression e) exp2;
@@ -349,6 +352,8 @@ let rec expression e =
         | _ -> raise Impossible
       )
 
+  | Ast.AsExpr(expr,asexpr) -> expression expr
+
   | Ast.EComma(cm) -> mcode print_string cm
 
   | Ast.DisjExpr(exp_list) ->
@@ -447,7 +452,8 @@ and constant = function
 
 and fullType ft =
   match Ast.unwrap ft with
-    Ast.Type(cv,ty) -> print_option_space (mcode const_vol) cv; typeC ty
+    Ast.Type(_,cv,ty) -> print_option_space (mcode const_vol) cv; typeC ty
+  | Ast.AsType(ty, asty) -> fullType ty
   | Ast.DisjType _ -> failwith "can't be in plus"
   | Ast.OptType(_) | Ast.UniqueType(_) ->
       raise CantBeInPlus
@@ -542,7 +548,7 @@ and storage = function
 
 and print_named_type ty id =
   match Ast.unwrap ty with
-    Ast.Type(None,ty1) ->
+    Ast.Type(_,None,ty1) ->
       (match Ast.unwrap ty1 with
        Ast.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) ->
          print_function_pointer (ty,lp1,star,rp1,lp2,params,rp2)
@@ -555,7 +561,8 @@ and print_named_type ty id =
            match Ast.unwrap ty with
              Ast.Array(ty,lb,size,rb) ->
                (match Ast.unwrap ty with
-                 Ast.Type(None,ty) ->
+                 Ast.Type(_,cv,ty) ->
+                   print_option_space (mcode const_vol) cv;
                    loop ty
                      (function _ ->
                        k ();
@@ -578,7 +585,7 @@ and ty_space ty =
 
 and ft_space ty =
   match Ast.unwrap ty with
-    Ast.Type(cv,ty) ->
+    Ast.Type(_,cv,ty) ->
       (match Ast.unwrap ty with
        Ast.Pointer(_,_) -> ()
       | Ast.MetaType(name,_,_) ->
@@ -613,6 +620,8 @@ and declaration d =
              print_between force_newline pretty_print_c.Pretty_print_c.field f
           | _ -> raise Impossible)
 
+  | Ast.AsDecl(decl,asdecl) -> declaration decl
+
   | Ast.Init(stg,ty,id,eq,ini,sem) ->
       print_option (mcode storage) stg;
       print_option (function _ -> pr_space()) stg;
@@ -628,6 +637,12 @@ and declaration d =
       ident name; mcode print_string_box lp;
       dots (function _ -> ()) expression args;
       close_box(); mcode print_string rp; mcode print_string sem
+  | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      ident name; mcode print_string_box lp;
+      dots (function _ -> ()) expression args;
+      close_box(); mcode print_string rp;
+      pr_space(); mcode print_string eq;
+      pr_space(); initialiser true ini; mcode print_string sem
   | Ast.TyDecl(ty,sem) -> fullType ty; mcode print_string sem
   | Ast.Typedef(stg,ty,id,sem) ->
       mcode print_string stg;
@@ -653,6 +668,7 @@ and initialiser nlcomma i =
           Ast_c.MetaInitListVal ini ->
            pretty_print_c.Pretty_print_c.init_list ini
         | _ -> raise Impossible)
+  | Ast.AsInit(init,asinit) -> initialiser nlcomma init
   | Ast.InitExpr(exp) -> expression exp
   | Ast.ArInitList(lb,initlist,rb) ->
       (match Ast.undots initlist with
@@ -940,6 +956,8 @@ let rec statement arity s =
       rule_elem arity header; pr_space();
       dots force_newline (statement arity) body
 
+  | Ast.AsStmt(stmt,asstmt) -> statement arity stmt
+
   | Ast.Disj([stmt_dots]) ->
       if generating
       then
index a1fd2b1..0fd8bb2 100644 (file)
@@ -492,11 +492,15 @@ and vk_decl = fun bigf d ->
        iif ii;
        xs +> List.iter (fun (x,ii) ->
         iif ii;
-        vk_onedecl bigf x;
+        vk_onedecl bigf x
       );
     | MacroDecl ((s, args, ptvg),ii) ->
+        iif ii;
+        vk_argument_list bigf args
+    | MacroDeclInit ((s, args, ini),ii) ->
         iif ii;
         vk_argument_list bigf args;
+       vk_ini bigf ini
   in f (k, bigf) d
 
 and vk_decl_list = fun bigf ts ->
@@ -1289,6 +1293,12 @@ and vk_decl_s = fun bigf d ->
            args +> List.map (fun (e,ii) -> vk_argument_s bigf e, iif ii),
            ptvg),
           iif ii)
+    | MacroDeclInit ((s, args, ini),ii) ->
+        MacroDeclInit
+          ((s,
+           args +> List.map (fun (e,ii) -> vk_argument_s bigf e, iif ii),
+          vk_ini_s bigf ini),
+          iif ii)
 
 
   and aux ({v_namei = var;
index 5964134..aa3fb14 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -32,7 +34,7 @@ SOURCES = flag_parsing_cocci.ml type_cocci.ml ast_cocci.ml ast0_cocci.ml \
 pretty_print_cocci.ml unparse_ast0.ml visitor_ast0_types.ml \
 visitor_ast.ml visitor_ast0.ml compute_lines.ml comm_assoc.ml \
 iso_pattern.ml iso_compile.ml single_statement.ml simple_assignments.ml \
-ast0toast.ml check_meta.ml top_level.ml type_infer.ml \
+get_metas.ml ast0toast.ml check_meta.ml top_level.ml type_infer.ml \
 test_exps.ml unitary_ast0.ml arity.ml index.ml context_neg.ml \
 adjust_pragmas.ml insert_plus.ml function_prototypes.ml \
 unify_ast.ml semantic_cocci.ml data.ml free_vars.ml safe_for_multi_decls.ml \
index b95258d..763703d 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 9c659f8..7b81df7 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index de9b094..31c747d 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -64,6 +66,7 @@ let rec right_decl d =
   | Ast0.MetaFieldList(name,lenname,pure) ->
       call_right right_mcode name d
        (function name -> Ast0.MetaFieldList(name,lenname,pure))
+  | Ast0.AsDecl(decl,asdecl) -> failwith "not possible"
   | Ast0.Init(Some stg,ty,id,eq,ini,sem) ->
       call_right right_mcode sem d
        (function sem -> Ast0.Init(Some stg,ty,id,eq,ini,sem))
@@ -79,6 +82,9 @@ let rec right_decl d =
   | Ast0.MacroDecl(name,lp,args,rp,sem) ->
       call_right right_mcode sem d
        (function sem -> Ast0.MacroDecl(name,lp,args,rp,sem))
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      call_right right_mcode sem d
+       (function sem -> Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem))
   | Ast0.TyDecl(ty,sem) ->
       call_right right_mcode sem d
        (function sem -> Ast0.TyDecl(ty,sem))
@@ -139,6 +145,7 @@ let rec right_statement s =
   | Ast0.MetaStmtList(name,pure) ->
       call_right right_mcode name s
        (function name -> Ast0.MetaStmtList(name,pure))
+  | Ast0.AsStmt(stm,asstm) -> failwith "not possible"
   | Ast0.Disj(starter,statement_dots_list,mids,ender) -> None
   | Ast0.Nest(starter,stmt_dots,ender,whn,multi) -> None
   (* the following are None, because they can't be adjacent to an aft node *)
@@ -211,6 +218,7 @@ let rec left_ty t =
       call_right left_mcode name t (function name -> Ast0.TypeName(name))
   | Ast0.MetaType(name,x) ->
       call_right left_mcode name t (function name -> Ast0.MetaType(name,x))
+  | Ast0.AsType(ty,asty) -> failwith "not possible"
   | Ast0.DisjType(starter,types,mids,ender) -> None
   | Ast0.OptType(ty) ->
       call_right left_ty ty t (function ty -> Ast0.OptType(ty))
@@ -264,6 +272,7 @@ let rec left_decl decl =
   | Ast0.MetaFieldList(name,lenname,pure) ->
       call_right right_mcode name decl
        (function name -> Ast0.MetaFieldList(name,lenname,pure))
+  | Ast0.AsDecl(decl,asdecl) -> failwith "not possible"
   | Ast0.Init(Some stg,ty,id,eq,ini,sem) ->
       call_right left_mcode stg decl
        (function stg -> Ast0.Init(Some stg,ty,id,eq,ini,sem))
@@ -279,6 +288,9 @@ let rec left_decl decl =
   | Ast0.MacroDecl(name,lp,args,rp,sem) ->
       call_right left_ident name decl
        (function name -> Ast0.MacroDecl(name,lp,args,rp,sem))
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      call_right left_ident name decl
+       (function name -> Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem))
   | Ast0.TyDecl(ty,sem) ->
       call_right left_ty ty decl (function ty -> Ast0.TyDecl(ty,sem))
   | Ast0.Typedef(stg,ty,id,sem) ->
index 8e9a400..08b9d26 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 160f0f9..fac9765 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -229,6 +231,12 @@ let rec top_expression opt_allowed tgt expr =
       let op = mcode op in
       let right = expression arity right in
       make_exp expr tgt arity (Ast0.Assignment(left,op,right,simple))
+  | Ast0.Sequence(left,op,right) ->
+      let arity = exp_same (mcode2line op) [mcode2arity op] in
+      let left = expression arity left in
+      let op = mcode op in
+      let right = expression arity right in
+      make_exp expr tgt arity (Ast0.Sequence(left,op,right))
   | Ast0.CondExpr(exp1,why,exp2,colon,exp3) ->
       let arity =
        exp_same (mcode2line why) [mcode2arity why; mcode2arity colon] in
@@ -359,7 +367,7 @@ let rec top_expression opt_allowed tgt expr =
       let init = initialiser arity init in
       make_exp expr tgt arity (Ast0.Constructor(lp,ty,rp,init))
   (* why does optexp exist???? *)
-  | Ast0.OptExp(_) | Ast0.UniqueExp(_) ->
+  | Ast0.OptExp(_) | Ast0.UniqueExp(_) | Ast0.AsExpr _ ->
       failwith "unexpected code"
 
 and expression tgt exp = top_expression false tgt exp
@@ -472,7 +480,7 @@ and top_typeC tgt opt_allowed typ =
       |        _ -> ());
       let res = Ast0.DisjType(starter,types,mids,ender) in
       Ast0.rewrap typ res
-  | Ast0.OptType(_) | Ast0.UniqueType(_) ->
+  | Ast0.OptType(_) | Ast0.UniqueType(_) | Ast0.AsType _ ->
       failwith "unexpected code"
 
 and typeC tgt ty = top_typeC tgt false ty
@@ -525,13 +533,26 @@ and declaration tgt decl =
       make_decl decl tgt arity (Ast0.UnInit(stg,ty,id,sem))
   | Ast0.MacroDecl(name,lp,args,rp,sem) ->
       let arity =
-       all_same true tgt (mcode2line lp) (List.map mcode2arity [lp;rp;sem]) in
+       all_same true tgt (mcode2line lp)
+         (List.map mcode2arity [lp;rp;sem]) in
       let name = ident false arity name in
       let lp = mcode lp in
       let args = dots (expression arity) args in
       let rp = mcode rp in
       let sem = mcode sem in
       make_decl decl tgt arity (Ast0.MacroDecl(name,lp,args,rp,sem))
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      let arity =
+       all_same true tgt (mcode2line lp)
+         (List.map mcode2arity [lp;rp;eq;sem]) in
+      let name = ident false arity name in
+      let lp = mcode lp in
+      let args = dots (expression arity) args in
+      let rp = mcode rp in
+      let ini = initialiser arity ini in
+      let sem = mcode sem in
+      make_decl decl tgt arity
+       (Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem))
   | Ast0.TyDecl(ty,sem) ->
       let arity =
        all_same true tgt (mcode2line sem) [mcode2arity sem] in
@@ -561,7 +582,7 @@ and declaration tgt decl =
       let dots = mcode dots in
       let whencode = get_option (declaration Ast0.NONE) whencode in
       make_decl decl tgt arity (Ast0.Ddots(dots,whencode))
-  | Ast0.OptDecl(_) | Ast0.UniqueDecl(_) ->
+  | Ast0.OptDecl(_) | Ast0.UniqueDecl(_) | Ast0.AsDecl _ ->
       failwith "unexpected code"
 
 (* --------------------------------------------------------------------- *)
@@ -612,7 +633,7 @@ and initialiser tgt i =
       let dots = mcode dots in
       let whencode = get_option (initialiser Ast0.NONE) whencode in
       make_init i tgt arity (Ast0.Idots(dots,whencode))
-  | Ast0.OptIni(_) | Ast0.UniqueIni(_) ->
+  | Ast0.OptIni(_) | Ast0.UniqueIni(_) | Ast0.AsInit _ ->
       failwith "unexpected code"
 
 and designator tgt d =
@@ -998,7 +1019,7 @@ and statement tgt stm =
       let params = define_parameters arity params in
       let body = dots (statement arity) body in
       make_rule_elem stm tgt arity (Ast0.Define(def,id,params,body))
-  | Ast0.OptStm(_) | Ast0.UniqueStm(_) ->
+  | Ast0.OptStm(_) | Ast0.UniqueStm(_) | Ast0.AsStmt _ ->
       failwith "unexpected code"
 
 and define_parameters tgt params =
index 73194c3..35c183b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index b807f37..a479f46 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -61,7 +63,7 @@ type info = { pos_info : position_info;
 it is used in deciding how much to remove, when two adjacent code tokens are
 removed. *)
 type 'a mcode =
-    'a * arity * info * mcodekind * meta_pos list ref (* pos, - only *) *
+    'a * arity * info * mcodekind * anything list ref (* pos, - only *) *
       int (* adjacency_index *)
 (* int ref is an index *)
 and 'a wrap =
@@ -124,6 +126,7 @@ and base_expression =
                       expression dots * string mcode (* ) *)
   | Assignment     of expression * Ast.assignOp mcode * expression *
                      bool (* true if it can match an initialization *)
+  | Sequence       of expression * string mcode (* , *) * expression
   | CondExpr       of expression * string mcode (* ? *) * expression option *
                      string mcode (* : *) * expression
   | Postfix        of expression * Ast.fixOp mcode
@@ -150,6 +153,7 @@ and base_expression =
                      TC.typeC list option * Ast.form * pure
   | MetaExprList   of Ast.meta_name mcode (* only in arg lists *) *
                      listlen * pure
+  | AsExpr         of expression * expression (* as expr, always metavar *)
   | EComma         of string mcode (* only in arg lists *)
   | DisjExpr       of string mcode * expression list *
                      string mcode list (* the |s *) * string mcode
@@ -198,6 +202,7 @@ and base_typeC =
        string mcode (* { *) * declaration dots * string mcode (* } *)
   | TypeName        of string mcode
   | MetaType        of Ast.meta_name mcode * pure
+  | AsType          of typeC * typeC (* as type, always metavar *)
   | DisjType        of string mcode * typeC list * (* only after iso *)
                        string mcode list (* the |s *)  * string mcode
   | OptType         of typeC
@@ -217,12 +222,16 @@ and base_declaration =
        should be a separate type for fields, as in the C AST *)
   | MetaField of Ast.meta_name mcode * pure (* structure fields *)
   | MetaFieldList of Ast.meta_name mcode * listlen * pure (* structure fields *)
+  | AsDecl        of declaration * declaration
   | Init of Ast.storage mcode option * typeC * ident * string mcode (*=*) *
        initialiser * string mcode (*;*)
   | UnInit of Ast.storage mcode option * typeC * ident * string mcode (* ; *)
   | TyDecl of typeC * string mcode (* ; *)
   | MacroDecl of ident (* name *) * string mcode (* ( *) *
         expression dots * string mcode (* ) *) * string mcode (* ; *)
+  | MacroDeclInit of ident (* name *) * string mcode (* ( *) *
+        expression dots * string mcode (* ) *) * string mcode (*=*) *
+       initialiser * string mcode (* ; *)
   | Typedef of string mcode (* typedef *) * typeC * typeC * string mcode (*;*)
   | DisjDecl   of string mcode * declaration list *
                   string mcode list (* the |s *)  * string mcode
@@ -239,6 +248,7 @@ and declaration = base_declaration wrap
 and base_initialiser =
     MetaInit of Ast.meta_name mcode * pure
   | MetaInitList of Ast.meta_name mcode * listlen * pure
+  | AsInit of initialiser * initialiser (* as init, always metavar *)
   | InitExpr of expression
   | InitList of string mcode (*{*) * initialiser_list * string mcode (*}*) *
        (* true if ordered, as for array, false if unordered, as for struct *)
@@ -344,6 +354,7 @@ and base_statement =
                     string mcode (* ; *)
   | MetaStmt      of Ast.meta_name mcode * pure
   | MetaStmtList  of Ast.meta_name mcode(*only in statement lists*) * pure
+  | AsStmt        of statement * statement (* as statement, always metavar *)
   | Exp           of expression  (* only in dotted statement lists *)
   | TopExp        of expression (* for macros body *)
   | Ty            of typeC (* only at top level *)
@@ -463,6 +474,7 @@ and anything =
   | IsoWhenTTag of expression
   | IsoWhenFTag of expression
   | MetaPosTag of meta_pos
+  | HiddenVarTag of anything list (* in iso_compile/pattern only *)
 
 let dotsExpr x = DotsExprTag x
 let dotsParam x = DotsParamTag x
@@ -560,6 +572,35 @@ let set_mcode_data data (_,ar,info,mc,pos,adj) = (data,ar,info,mc,pos,adj)
 
 (* --------------------------------------------------------------------- *)
 
+let rec meta_pos_name = function
+    HiddenVarTag(vars) ->
+       (* totally fake, just drop the rest, only for isos *)
+      meta_pos_name (List.hd vars)
+  | MetaPosTag(MetaPos(name,constraints,_)) -> name
+  | ExprTag(e) ->
+      (match unwrap e with
+       MetaExpr(name,constraints,ty,form,pure) -> name
+      | _ -> failwith "bad metavariable")
+  | TypeCTag(t) ->
+      (match unwrap t with
+       MetaType(name,pure) -> name
+      | _ -> failwith "bad metavariable")
+  | DeclTag(d) ->
+      (match unwrap d with
+       MetaDecl(name,pure) -> name
+      | _ -> failwith "bad metavariable")
+  | InitTag(i) ->
+      (match unwrap i with
+       MetaInit(name,pure) -> name
+      | _ -> failwith "bad metavariable")
+  | StmtTag(s) ->
+      (match unwrap s with
+       MetaStmt(name,pure) -> name
+      | _ -> failwith "bad metavariable")
+  | _ -> failwith "bad metavariable"
+
+(* --------------------------------------------------------------------- *)
+
 (* unique indices, for mcode and tree nodes *)
 let index_counter = ref 0
 let fresh_index _ = let cur = !index_counter in index_counter := cur + 1; cur
@@ -600,7 +641,7 @@ let rec ast0_type_to_type ty =
             "For type checking assuming the name of the metavariable is the name of the type\n";
           TC.EnumName(TC.MV(unwrap_mcode tag,TC.Unitary,false)))
       | _ -> failwith "unexpected enum type name")
-  | EnumName(su,None) -> failwith "nameless enum - what to do???"
+  | EnumName(su,None) -> TC.EnumName TC.NoName
   | EnumDef(ty,_,_,_) -> ast0_type_to_type ty
   | StructUnionName(su,Some tag) ->
       (match unwrap tag with
@@ -618,11 +659,12 @@ let rec ast0_type_to_type ty =
             perhaps polymorphism would help? *)
          failwith "constraints not supported on struct type name"
       | _ -> failwith "unexpected struct/union type name")
-  | StructUnionName(su,None) -> failwith "nameless structure - what to do???"
+  | StructUnionName(su,None) -> TC.StructUnionName(structUnion su,TC.NoName)
   | StructUnionDef(ty,_,_,_) -> ast0_type_to_type ty
   | TypeName(name) -> TC.TypeName(unwrap_mcode name)
   | MetaType(name,_) ->
       TC.MetaType(unwrap_mcode name,TC.Unitary,false)
+  | AsType(ty,asty) -> failwith "not created yet"
   | DisjType(_,types,_,_) ->
       Common.pr2_once
        "disjtype not supported in smpl type inference, assuming unknown";
index aed4167..7ada39a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -53,7 +55,7 @@ type info = { pos_info : position_info;
              isSymbolIdent : bool; (* is the token a symbol identifier or not *) }
 
 type 'a mcode =
-    'a * arity * info * mcodekind * meta_pos list ref (* pos, - only *) *
+    'a * arity * info * mcodekind * anything list ref (* pos, - only *) *
       int (* adjacency_index *)
 
 and 'a wrap =
@@ -115,6 +117,7 @@ and base_expression =
                       expression dots * string mcode (* ) *)
   | Assignment     of expression * Ast_cocci.assignOp mcode * expression *
                      bool (* true if it can match an initialization *)
+  | Sequence       of expression * string mcode (* , *) * expression
   | CondExpr       of expression * string mcode (* ? *) * expression option *
                      string mcode (* : *) * expression
   | Postfix        of expression * Ast_cocci.fixOp mcode
@@ -141,6 +144,7 @@ and base_expression =
                      Type_cocci.typeC list option * Ast_cocci.form * pure
   | MetaExprList   of Ast_cocci.meta_name mcode (* only in arglists *) *
                      listlen * pure
+  | AsExpr         of expression * expression (* as expr, always metavar *)
   | EComma         of string mcode (* only in arglists *)
   | DisjExpr       of string mcode * expression list * string mcode list *
                      string mcode
@@ -189,6 +193,7 @@ and base_typeC =
        string mcode (* { *) * declaration dots * string mcode (* } *)
   | TypeName        of string mcode
   | MetaType        of Ast_cocci.meta_name mcode * pure
+  | AsType          of typeC * typeC (* as type, always metavar *)
   | DisjType        of string mcode * typeC list * (* only after iso *)
                        string mcode list (* the |s *)  * string mcode
   | OptType         of typeC
@@ -205,6 +210,7 @@ and base_declaration =
     MetaDecl   of Ast_cocci.meta_name mcode * pure (* variables *)
   | MetaField  of Ast_cocci.meta_name mcode * pure (* structure fields *)
   | MetaFieldList of Ast_cocci.meta_name mcode * listlen * pure
+  | AsDecl        of declaration * declaration
   | Init       of Ast_cocci.storage mcode option * typeC * ident *
        string mcode (*=*) * initialiser * string mcode (*;*)
   | UnInit     of Ast_cocci.storage mcode option * typeC * ident *
@@ -212,6 +218,9 @@ and base_declaration =
   | TyDecl of typeC * string mcode (* ; *)
   | MacroDecl of ident (* name *) * string mcode (* ( *) *
         expression dots * string mcode (* ) *) * string mcode (* ; *)
+  | MacroDeclInit of ident (* name *) * string mcode (* ( *) *
+        expression dots * string mcode (* ) *) * string mcode (*=*) *
+        initialiser * string mcode (* ; *)
   | Typedef of string mcode (* typedef *) * typeC * typeC * string mcode (*;*)
   | DisjDecl   of string mcode * declaration list * string mcode list *
                  string mcode
@@ -227,6 +236,7 @@ and declaration = base_declaration wrap
 and base_initialiser =
     MetaInit of Ast_cocci.meta_name mcode * pure
   | MetaInitList of Ast_cocci.meta_name mcode * listlen * pure
+  | AsInit of initialiser * initialiser (* as init, always metavar *)
   | InitExpr of expression
   | InitList of string mcode (*{*) * initialiser_list * string mcode (*}*) *
        bool (* true if ordered, false if unordered *)
@@ -332,6 +342,7 @@ and base_statement =
   | MetaStmt      of Ast_cocci.meta_name mcode * pure
   | MetaStmtList  of Ast_cocci.meta_name mcode (*only in statement lists*) *
                     pure
+  | AsStmt        of statement * statement (* as statement, always metavar *)
   | Exp           of expression  (* only in dotted statement lists *)
   | TopExp        of expression (* for macros body *)
   | Ty            of typeC (* only at top level *)
@@ -455,7 +466,8 @@ and anything =
   | IsoWhenTag of Ast_cocci.when_modifier (*only for when code, in iso phase*)
   | IsoWhenTTag of expression(*only for when code, in iso phase*)
   | IsoWhenFTag of expression(*only for when code, in iso phase*)
-  | MetaPosTag of meta_pos (* only in iso phase *)
+  | MetaPosTag of meta_pos
+  | HiddenVarTag of anything list (* in iso_compile/pattern only *)
 
 val dotsExpr : expression dots -> anything
 val dotsInit : initialiser dots -> anything
@@ -490,9 +502,9 @@ val unwrap_mcode : 'a mcode -> 'a
 val rewrap : 'a wrap -> 'b -> 'b wrap
 val rewrap_mcode : 'a mcode -> 'b -> 'b mcode
 val copywrap : 'a wrap -> 'b -> 'b wrap
-val get_pos : 'a mcode -> meta_pos list
-val get_pos_ref : 'a mcode -> meta_pos list ref
-val set_pos : meta_pos list -> 'a mcode -> 'a mcode
+val get_pos : 'a mcode -> anything list
+val get_pos_ref : 'a mcode -> anything list ref
+val set_pos : anything list -> 'a mcode -> 'a mcode
 val get_info : 'a wrap -> info
 val set_info : 'a wrap -> info -> 'a wrap
 val get_index : 'a wrap -> int
@@ -521,6 +533,8 @@ val make_mcode : 'a -> 'a mcode
 val make_mcode_info : 'a -> info -> 'a mcode
 val make_minus_mcode : 'a -> 'a mcode
 
+val meta_pos_name : anything -> Ast_cocci.meta_name mcode
+
 val ast0_type_to_type : typeC -> Type_cocci.typeC
 val reverse_type : Type_cocci.typeC -> base_typeC
 exception TyConv
index 17534a1..d9dd869 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -210,7 +212,7 @@ let check_allminus =
       Ast0.MINUS(r) -> let (plusses,_) = !r in plusses = Ast.NOREPLACEMENT
     | _ -> false in
 
-  (* special case for disj *)
+  (* special case for disj and asExpr etc *)
   let ident r k e =
     match Ast0.unwrap e with
       Ast0.DisjId(starter,id_list,mids,ender) ->
@@ -221,24 +223,33 @@ let check_allminus =
     match Ast0.unwrap e with
       Ast0.DisjExpr(starter,expr_list,mids,ender) ->
        List.for_all r.VT0.combiner_rec_expression expr_list
+    | Ast0.AsExpr(exp,asexp) -> k exp
     | _ -> k e in
 
   let declaration r k e =
     match Ast0.unwrap e with
       Ast0.DisjDecl(starter,decls,mids,ender) ->
        List.for_all r.VT0.combiner_rec_declaration decls
+    | Ast0.AsDecl(decl,asdecl) -> k decl
     | _ -> k e in
 
   let typeC r k e =
     match Ast0.unwrap e with
       Ast0.DisjType(starter,decls,mids,ender) ->
        List.for_all r.VT0.combiner_rec_typeC decls
+    | Ast0.AsType(ty,asty) -> k ty
+    | _ -> k e in
+
+  let initialiser r k e =
+    match Ast0.unwrap e with
+      Ast0.AsInit(init,asinit) -> k init
     | _ -> k e in
 
   let statement r k e =
     match Ast0.unwrap e with
       Ast0.Disj(starter,statement_dots_list,mids,ender) ->
        List.for_all r.VT0.combiner_rec_statement_dots statement_dots_list
+    | Ast0.AsStmt(stmt,asstmt) -> k stmt
     | _ -> k e in
 
   let case_line r k e =
@@ -251,7 +262,7 @@ let check_allminus =
     mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode
     mcode mcode
     donothing donothing donothing donothing donothing donothing
-    ident expression typeC donothing donothing declaration
+    ident expression typeC initialiser donothing declaration
     statement case_line donothing
 
 (* --------------------------------------------------------------------- *)
@@ -307,11 +318,14 @@ let pos_mcode(term,_,info,mcodekind,pos,adj) =
 
 let mcode (term,_,info,mcodekind,pos,adj) =
   let pos =
-    List.map
-      (function Ast0.MetaPos(pos,constraints,per) ->
-       Ast.MetaPos(pos_mcode pos,constraints,per,unitary,false))
-      !pos in
-  (term,convert_info info,convert_mcodekind adj mcodekind,pos)
+    List.fold_left
+      (function prev ->
+       function
+           Ast0.MetaPosTag(Ast0.MetaPos(pos,constraints,per)) ->
+             (Ast.MetaPos(pos_mcode pos,constraints,per,unitary,false))::prev
+         | _ -> prev)
+      [] !pos in
+  (term,convert_info info,convert_mcodekind adj mcodekind,List.rev pos)
 
 (* --------------------------------------------------------------------- *)
 (* Dots *)
@@ -337,11 +351,14 @@ let dots fn d =
 
 (* commas in dotted lists, here due to polymorphism restrictions *)
 
-let add_comma is_comma make_comma itemlist =
+let add_comma is_comma is_dots make_comma itemlist =
   match Ast0.unwrap itemlist with
     Ast0.DOTS(x) ->
       (match List.rev x with
        [] -> itemlist
+(* Not sure if comma is needed if the list is just ...; leave it there for
+now. See list_matcher in cocci_vs_c.ml in first try_matches case. *)
+(*      |      [e] when is_dots e -> itemlist*)
       | e::es ->
          if is_comma e
          then itemlist
@@ -358,11 +375,13 @@ let add_comma is_comma make_comma itemlist =
 let add_exp_comma =
   add_comma
     (function x -> match Ast0.unwrap x with Ast0.EComma _ -> true | _ -> false)
+    (function x -> match Ast0.unwrap x with Ast0.Edots _  -> true | _ -> false)
     (function x -> Ast0.EComma x)
 
 and add_init_comma =
   add_comma
     (function x -> match Ast0.unwrap x with Ast0.IComma _ -> true | _ -> false)
+    (function x -> match Ast0.unwrap x with Ast0.Idots _  -> true | _ -> false)
     (function x -> Ast0.IComma x)
 
 (* --------------------------------------------------------------------- *)
@@ -403,6 +422,8 @@ and expression e =
        Ast.FunCall(fn,lp,args,rp)
     | Ast0.Assignment(left,op,right,simple) ->
        Ast.Assignment(expression left,mcode op,expression right,simple)
+    | Ast0.Sequence(left,op,right) ->
+       Ast.Sequence(expression left,mcode op,expression right)
     | Ast0.CondExpr(exp1,why,exp2,colon,exp3) ->
        let exp1 = expression exp1 in
        let why = mcode why in
@@ -429,20 +450,27 @@ and expression e =
     | Ast0.RecordPtAccess(exp,ar,field) ->
        Ast.RecordPtAccess(expression exp,mcode ar,ident field)
     | Ast0.Cast(lp,ty,rp,exp) ->
-       Ast.Cast(mcode lp,typeC ty,mcode rp,expression exp)
+       let allminus = check_allminus.VT0.combiner_rec_expression e in
+       Ast.Cast(mcode lp,typeC allminus ty,mcode rp,expression exp)
     | Ast0.SizeOfExpr(szf,exp) ->
        Ast.SizeOfExpr(mcode szf,expression exp)
     | Ast0.SizeOfType(szf,lp,ty,rp) ->
-       Ast.SizeOfType(mcode szf, mcode lp,typeC ty,mcode rp)
-    | Ast0.TypeExp(ty) -> Ast.TypeExp(typeC ty)
+       let allminus = check_allminus.VT0.combiner_rec_expression e in
+       Ast.SizeOfType(mcode szf, mcode lp,typeC allminus ty,mcode rp)
+    | Ast0.TypeExp(ty) ->
+       let allminus = check_allminus.VT0.combiner_rec_expression e in
+       Ast.TypeExp(typeC allminus ty)
     | Ast0.Constructor(lp,ty,rp,init) ->
-       Ast.Constructor(mcode lp,typeC ty,mcode rp,initialiser init)
+       let allminus = check_allminus.VT0.combiner_rec_expression e in
+       Ast.Constructor(mcode lp,typeC allminus ty,mcode rp,initialiser init)
     | Ast0.MetaErr(name,cstrts,_)  ->
          Ast.MetaErr(mcode name,constraints cstrts,unitary,false)
     | Ast0.MetaExpr(name,cstrts,ty,form,_)  ->
          Ast.MetaExpr(mcode name,constraints cstrts,unitary,ty,form,false)
     | Ast0.MetaExprList(name,lenname,_) ->
        Ast.MetaExprList(mcode name,do_lenname lenname,unitary,false)
+    | Ast0.AsExpr(expr,asexpr) ->
+       Ast.AsExpr(expression expr,expression asexpr)
     | Ast0.EComma(cm)         -> Ast.EComma(mcode cm)
     | Ast0.DisjExpr(_,exps,_,_)     ->
        Ast.DisjExpr(List.map expression exps)
@@ -486,7 +514,7 @@ and do_lenname = function
 
 and rewrap_iso t t1 = rewrap t (do_isos (Ast0.get_iso t)) t1
 
-and typeC t =
+and typeC allminus t =
   rewrap t (do_isos (Ast0.get_iso t))
     (match Ast0.unwrap t with
       Ast0.ConstVol(cv,ty) ->
@@ -501,7 +529,8 @@ and typeC t =
          List.map
            (function ty ->
              Ast.Type
-               (Some (mcode cv),rewrap_iso ty (base_typeC ty)))
+               (allminus, Some (mcode cv),
+                rewrap_iso ty (base_typeC allminus ty)))
            (collect_disjs ty) in
        (* one could worry that isos are lost because we flatten the
           disjunctions.  but there should not be isos on the disjunctions
@@ -514,38 +543,43 @@ and typeC t =
     | Ast0.Array(_,_,_,_) | Ast0.EnumName(_,_) | Ast0.StructUnionName(_,_)
     | Ast0.StructUnionDef(_,_,_,_) | Ast0.EnumDef(_,_,_,_)
     | Ast0.TypeName(_) | Ast0.MetaType(_,_) ->
-       Ast.Type(None,rewrap t no_isos (base_typeC t))
-    | Ast0.DisjType(_,types,_,_) -> Ast.DisjType(List.map typeC types)
-    | Ast0.OptType(ty) -> Ast.OptType(typeC ty)
-    | Ast0.UniqueType(ty) -> Ast.UniqueType(typeC ty))
-
-and base_typeC t =
+       Ast.Type(allminus,None,rewrap t no_isos (base_typeC allminus t))
+    | Ast0.DisjType(_,types,_,_) ->
+       Ast.DisjType(List.map (typeC allminus) types)
+    | Ast0.AsType(ty,asty) ->
+       Ast.AsType(typeC allminus ty,typeC allminus asty)
+    | Ast0.OptType(ty) -> Ast.OptType(typeC allminus ty)
+    | Ast0.UniqueType(ty) -> Ast.UniqueType(typeC allminus ty))
+
+and base_typeC allminus t =
   match Ast0.unwrap t with
     Ast0.BaseType(ty,strings) -> Ast.BaseType(ty,List.map mcode strings)
   | Ast0.Signed(sgn,ty) ->
-      Ast.SignedT(mcode sgn,
-                 get_option (function x -> rewrap_iso x (base_typeC x)) ty)
-  | Ast0.Pointer(ty,star) -> Ast.Pointer(typeC ty,mcode star)
+      Ast.SignedT
+       (mcode sgn,
+        get_option (function x -> rewrap_iso x (base_typeC allminus x)) ty)
+  | Ast0.Pointer(ty,star) -> Ast.Pointer(typeC allminus ty,mcode star)
   | Ast0.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) ->
       Ast.FunctionPointer
-       (typeC ty,mcode lp1,mcode star,mcode rp1,
+       (typeC allminus ty,mcode lp1,mcode star,mcode rp1,
         mcode lp2,parameter_list params,mcode rp2)
   | Ast0.FunctionType(ret,lp,params,rp) ->
       let allminus = check_allminus.VT0.combiner_rec_typeC t in
       Ast.FunctionType
-       (allminus,get_option typeC ret,mcode lp,
+       (allminus,get_option (typeC allminus) ret,mcode lp,
         parameter_list params,mcode rp)
   | Ast0.Array(ty,lb,size,rb) ->
-      Ast.Array(typeC ty,mcode lb,get_option expression size,mcode rb)
+      Ast.Array(typeC allminus ty,mcode lb,get_option expression size,
+               mcode rb)
   | Ast0.EnumName(kind,name) ->
       Ast.EnumName(mcode kind,get_option ident name)
   | Ast0.EnumDef(ty,lb,ids,rb) ->
       let ids = add_exp_comma ids in
-      Ast.EnumDef(typeC ty,mcode lb,dots expression ids,mcode rb)
+      Ast.EnumDef(typeC allminus ty,mcode lb,dots expression ids,mcode rb)
   | Ast0.StructUnionName(kind,name) ->
       Ast.StructUnionName(mcode kind,get_option ident name)
   | Ast0.StructUnionDef(ty,lb,decls,rb) ->
-      Ast.StructUnionDef(typeC ty,mcode lb,
+      Ast.StructUnionDef(typeC allminus ty,mcode lb,
                         dots declaration decls,
                         mcode rb)
   | Ast0.TypeName(name) -> Ast.TypeName(mcode name)
@@ -565,9 +599,12 @@ and declaration d =
     | Ast0.MetaField(name,_) -> Ast.MetaField(mcode name,unitary,false)
     | Ast0.MetaFieldList(name,lenname,_) ->
        Ast.MetaFieldList(mcode name,do_lenname lenname,unitary,false)
+    | Ast0.AsDecl(decl,asdecl) ->
+       Ast.AsDecl(declaration decl,declaration asdecl)
     | Ast0.Init(stg,ty,id,eq,ini,sem) ->
+       let allminus = check_allminus.VT0.combiner_rec_declaration d in
        let stg = get_option mcode stg in
-       let ty = typeC ty in
+       let ty = typeC allminus ty in
        let id = ident id in
        let eq = mcode eq in
        let ini = initialiser ini in
@@ -580,13 +617,17 @@ and declaration d =
            Ast.UnInit(get_option mcode stg,
                       rewrap ty (do_isos (Ast0.get_iso ty))
                         (Ast.Type
-                           (None,
+                           (allminus,None,
                             rewrap ty no_isos
                               (Ast.FunctionType
-                                 (allminus,get_option typeC tyx,mcode lp1,
+                                 (allminus,get_option (typeC allminus) tyx,
+                                  mcode lp1,
                                   parameter_list params,mcode rp1)))),
                       ident id,mcode sem)
-       | _ -> Ast.UnInit(get_option mcode stg,typeC ty,ident id,mcode sem))
+       | _ ->
+           let allminus = check_allminus.VT0.combiner_rec_declaration d in
+           Ast.UnInit(get_option mcode stg,typeC allminus ty,ident id,
+                      mcode sem))
     | Ast0.MacroDecl(name,lp,args,rp,sem) ->
        let name = ident name in
        let lp = mcode lp in
@@ -594,12 +635,24 @@ and declaration d =
        let rp = mcode rp in
        let sem = mcode sem in
        Ast.MacroDecl(name,lp,args,rp,sem)
-    | Ast0.TyDecl(ty,sem) -> Ast.TyDecl(typeC ty,mcode sem)
+    | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+       let name = ident name in
+       let lp = mcode lp in
+       let args = dots expression args in
+       let rp = mcode rp in
+       let eq = mcode eq in
+       let ini = initialiser ini in
+       let sem = mcode sem in
+       Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem)
+    | Ast0.TyDecl(ty,sem) ->
+       let allminus = check_allminus.VT0.combiner_rec_declaration d in
+       Ast.TyDecl(typeC allminus ty,mcode sem)
     | Ast0.Typedef(stg,ty,id,sem) ->
-       let id = typeC id in
+       let allminus = check_allminus.VT0.combiner_rec_declaration d in
+       let id = typeC allminus id in
        (match Ast.unwrap id with
-         Ast.Type(None,id) -> (* only MetaType or Id *)
-           Ast.Typedef(mcode stg,typeC ty,id,mcode sem)
+         Ast.Type(_,None,id) -> (* only MetaType or Id *)
+           Ast.Typedef(mcode stg,typeC allminus ty,id,mcode sem)
        | _ -> failwith "bad typedef")
     | Ast0.DisjDecl(_,decls,_,_) -> Ast.DisjDecl(List.map declaration decls)
     | Ast0.Ddots(dots,whencode) ->
@@ -662,6 +715,8 @@ and initialiser i =
       Ast0.MetaInit(name,_) -> Ast.MetaInit(mcode name,unitary,false)
     | Ast0.MetaInitList(name,lenname,_) ->
        Ast.MetaInitList(mcode name,do_lenname lenname,unitary,false)
+    | Ast0.AsInit(init,asinit) ->
+       Ast.AsInit(initialiser init,initialiser asinit)
     | Ast0.InitExpr(exp) -> Ast.InitExpr(expression exp)
     | Ast0.InitList(lb,initlist,rb,true) ->
        let initlist = add_init_comma initlist in
@@ -699,8 +754,10 @@ and designator = function
 and parameterTypeDef p =
   rewrap p no_isos
     (match Ast0.unwrap p with
-      Ast0.VoidParam(ty) -> Ast.VoidParam(typeC ty)
-    | Ast0.Param(ty,id) -> Ast.Param(typeC ty,get_option ident id)
+      Ast0.VoidParam(ty) -> Ast.VoidParam(typeC false ty)
+    | Ast0.Param(ty,id) ->
+       let allminus = check_allminus.VT0.combiner_rec_parameter p in
+       Ast.Param(typeC allminus ty,get_option ident id)
     | Ast0.MetaParam(name,_) ->
        Ast.MetaParam(mcode name,unitary,false)
     | Ast0.MetaParamList(name,lenname,_) ->
@@ -830,6 +887,8 @@ and statement s =
       | Ast0.MetaStmtList(name,_) ->
          Ast.Atomic(rewrap_rule_elem s
                       (Ast.MetaStmtList(mcode name,unitary,false)))
+      | Ast0.AsStmt(stmt,asstmt) ->
+         Ast.AsStmt(statement seqible stmt,statement seqible asstmt)
       | Ast0.TopExp(exp) ->
          Ast.Atomic(rewrap_rule_elem s (Ast.TopExp(expression exp)))
       | Ast0.Exp(exp) ->
@@ -837,7 +896,8 @@ and statement s =
       | Ast0.TopInit(init) ->
          Ast.Atomic(rewrap_rule_elem s (Ast.TopInit(initialiser init)))
       | Ast0.Ty(ty) ->
-         Ast.Atomic(rewrap_rule_elem s (Ast.Ty(typeC ty)))
+         let allminus = check_allminus.VT0.combiner_rec_statement s in
+         Ast.Atomic(rewrap_rule_elem s (Ast.Ty(typeC allminus ty)))
       | Ast0.Disj(_,rule_elem_dots_list,_,_) ->
          Ast.Disj(List.map (function x -> statement_dots seqible x)
                     rule_elem_dots_list)
@@ -1016,7 +1076,7 @@ and statement s =
 
 and fninfo = function
     Ast0.FStorage(stg) -> Ast.FStorage(mcode stg)
-  | Ast0.FType(ty) -> Ast.FType(typeC ty)
+  | Ast0.FType(ty) -> Ast.FType(typeC false ty)
   | Ast0.FInline(inline) -> Ast.FInline(mcode inline)
   | Ast0.FAttr(attr) -> Ast.FAttr(mcode attr)
 
@@ -1060,7 +1120,7 @@ and anything = function
   | Ast0.ExprTag(d) -> Ast.ExpressionTag(expression d)
   | Ast0.ArgExprTag(d) | Ast0.TestExprTag(d) ->
      failwith "only in isos, not converted to ast"
-  | Ast0.TypeCTag(d) -> Ast.FullTypeTag(typeC d)
+  | Ast0.TypeCTag(d) -> Ast.FullTypeTag(typeC false d)
   | Ast0.ParamTag(d) -> Ast.ParamTag(parameterTypeDef d)
   | Ast0.InitTag(d) -> Ast.InitTag(initialiser d)
   | Ast0.DeclTag(d) -> Ast.DeclarationTag(declaration d)
@@ -1071,6 +1131,7 @@ and anything = function
   | Ast0.IsoWhenTTag(_) -> failwith "not possible"
   | Ast0.IsoWhenFTag(_) -> failwith "not possible"
   | Ast0.MetaPosTag _ -> failwith "not possible"
+  | Ast0.HiddenVarTag _ -> failwith "not possible"
 
 (* --------------------------------------------------------------------- *)
 (* Function declaration *)
index 6e03663..b45bd7b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -41,7 +43,7 @@ val declaration_dots :
     Ast0_cocci.declaration Ast0_cocci.dots ->
       Ast_cocci.declaration Ast_cocci.dots
 val case_line : Ast0_cocci.case_line -> Ast_cocci.case_line
-val typeC : Ast0_cocci.typeC -> Ast_cocci.fullType
+val typeC : bool (*allminus*) -> Ast0_cocci.typeC -> Ast_cocci.fullType
 val declaration : Ast0_cocci.declaration -> Ast_cocci.declaration
 val parameterTypeDef :
     Ast0_cocci.parameterTypeDef -> Ast_cocci.parameterTypeDef
index bf43265..e04ff2c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -173,6 +175,7 @@ and base_expression =
                       expression dots * string mcode (* ) *)
   | Assignment     of expression * assignOp mcode * expression *
                      bool (* true if it can match an initialization *)
+  | Sequence       of expression * string mcode (* , *) * expression
   | CondExpr       of expression * string mcode (* ? *) * expression option *
                      string mcode (* : *) * expression
   | Postfix        of expression * fixOp mcode
@@ -203,6 +206,7 @@ and base_expression =
                      Type_cocci.typeC list option * form * inherited
   | MetaExprList   of meta_name mcode * listlen * keep_binding *
                       inherited (* only in arg lists *)
+  | AsExpr         of expression * expression (* as expr, always metavar *)
 
   | EComma         of string mcode (* only in arg lists *)
 
@@ -267,7 +271,9 @@ and constant =
 (* Types *)
 
 and base_fullType =
-    Type            of const_vol mcode option * typeC
+    Type            of bool (* true if all minus *) *
+                      const_vol mcode option * typeC
+  | AsType          of fullType * fullType (* as type, always metavar *)
   | DisjType        of fullType list (* only after iso *)
   | OptType         of fullType
   | UniqueType      of fullType
@@ -324,6 +330,9 @@ and base_declaration =
   | TyDecl of fullType * string mcode (* ; *)
   | MacroDecl of ident (* name *) * string mcode (* ( *) *
         expression dots * string mcode (* ) *) * string mcode (* ; *)
+  | MacroDeclInit of ident (* name *) * string mcode (* ( *) *
+        expression dots * string mcode (* ) *) * string mcode (*=*) *
+        initialiser * string mcode (* ; *)
   | Typedef of string mcode (*typedef*) * fullType *
                typeC (* either TypeName or metavar *) * string mcode (*;*)
   | DisjDecl of declaration list
@@ -333,6 +342,7 @@ and base_declaration =
   | MetaDecl of meta_name mcode * keep_binding * inherited
   | MetaField of meta_name mcode * keep_binding * inherited
   | MetaFieldList of meta_name mcode * listlen * keep_binding * inherited
+  | AsDecl        of declaration * declaration
 
   | OptDecl    of declaration
   | UniqueDecl of declaration
@@ -345,6 +355,7 @@ and declaration = base_declaration wrap
 and base_initialiser =
     MetaInit of meta_name mcode * keep_binding * inherited
   | MetaInitList of meta_name mcode * listlen * keep_binding * inherited
+  | AsInit of initialiser * initialiser (* as init, always metavar *)
   | InitExpr of expression
   | ArInitList of string mcode (*{*) * initialiser dots * string mcode (*}*)
   | StrInitList of bool (* true if all are - *) *
@@ -502,7 +513,7 @@ and base_statement =
   | IfThen        of rule_elem (* header *) * statement * end_info (* endif *)
   | IfThenElse    of rule_elem (* header *) * statement *
                     rule_elem (* else *) * statement * end_info (* endif *)
-  | While         of rule_elem (* header *) * statement * end_info (*endwhile*)
+  | While         of rule_elem (* header *) * statement * end_info(*endwhile*)
   | Do            of rule_elem (* do *) * statement * rule_elem (* tail *)
   | For           of rule_elem (* header *) * statement * end_info (*endfor*)
   | Iterator      of rule_elem (* header *) * statement * end_info (*enditer*)
@@ -517,6 +528,7 @@ and base_statement =
   | FunDecl       of rule_elem (* header *) * rule_elem (* { *) *
                     statement dots * rule_elem (* } *)
   | Define        of rule_elem (* header *) * statement dots
+  | AsStmt        of statement * statement (* as statement, always metavar *)
   | Dots          of string mcode (* ... *) *
                     (statement dots,statement) whencode list *
                     dots_whencode list * dots_whencode list
@@ -791,6 +803,20 @@ let make_term x =
     safe_for_multi_decls = false;
     iso_info = [] }
 
+let make_inherited_term x inherited =
+  {node = x;
+    node_line = 0;
+    free_vars = [];
+    minus_free_vars = [];
+    fresh_vars = [];
+    inherited = inherited;
+    saved_witness = [];
+    bef_aft = NoDots;
+    pos_info = None;
+    true_if_test_exp = false;
+    safe_for_multi_decls = false;
+    iso_info = [] }
+
 let make_meta_rule_elem s d (fvs,fresh,inh) =
   let rule = "" in
   {(make_term
index 4749c04..0bf2fcd 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -158,6 +160,7 @@ and base_expression =
   | FunCall        of expression * string mcode (* ( *) *
                       expression dots * string mcode (* ) *)
   | Assignment     of expression * assignOp mcode * expression * bool
+  | Sequence       of expression * string mcode (* , *) * expression
   | CondExpr       of expression * string mcode (* ? *) * expression option *
                      string mcode (* : *) * expression
   | Postfix        of expression * fixOp mcode
@@ -188,6 +191,7 @@ and base_expression =
                      Type_cocci.typeC list option * form * inherited
   | MetaExprList   of meta_name mcode * listlen *
                      keep_binding * inherited (* only in arg lists *)
+  | AsExpr         of expression * expression (* as expr, always metavar *)
 
   | EComma         of string mcode (* only in arg lists *)
 
@@ -251,7 +255,9 @@ and constant =
 (* Types *)
 
 and base_fullType =
-    Type            of const_vol mcode option * typeC
+    Type            of bool (* true if all minus *) *
+                       const_vol mcode option * typeC
+  | AsType          of fullType * fullType (* as type, always metavar *)
   | DisjType        of fullType list (* only after iso *)
   | OptType         of fullType
   | UniqueType      of fullType
@@ -305,6 +311,9 @@ and base_declaration =
   | TyDecl of fullType * string mcode (* ; *)
   | MacroDecl of ident (* name *) * string mcode (* ( *) *
         expression dots * string mcode (* ) *) * string mcode (* ; *)
+  | MacroDeclInit of ident (* name *) * string mcode (* ( *) *
+        expression dots * string mcode (* ) *) * string mcode (*=*) *
+        initialiser * string mcode (* ; *)
   | Typedef of string mcode (*typedef*) * fullType * typeC * string mcode (*;*)
   | DisjDecl   of declaration list
   | Ddots    of string mcode (* ... *) * declaration option (* whencode *)
@@ -312,6 +321,7 @@ and base_declaration =
   | MetaDecl of meta_name mcode * keep_binding * inherited
   | MetaField of meta_name mcode * keep_binding * inherited
   | MetaFieldList of meta_name mcode * listlen * keep_binding * inherited
+  | AsDecl        of declaration * declaration
 
   | OptDecl    of declaration
   | UniqueDecl of declaration
@@ -324,6 +334,7 @@ and declaration = base_declaration wrap
 and base_initialiser =
     MetaInit of meta_name mcode * keep_binding * inherited
   | MetaInitList of meta_name mcode * listlen * keep_binding * inherited
+  | AsInit of initialiser * initialiser (* as init, always metavar *)
   | InitExpr of expression
   | ArInitList of string mcode (*{*) * initialiser dots * string mcode (*}*)
   | StrInitList of bool (* true if all are - *) *
@@ -494,6 +505,7 @@ and base_statement =
   | FunDecl       of rule_elem (* header *) * rule_elem (* { *) *
                     statement dots * rule_elem (* } *)
   | Define        of rule_elem (* header *) * statement dots
+  | AsStmt        of statement * statement (* as statement, always metavar *)
   | Dots          of string mcode (* ... *) *
                     (statement dots,statement) whencode list *
                     dots_whencode list * dots_whencode list
@@ -684,6 +696,7 @@ val make_meta_decl :
       declaration
 
 val make_term : 'a -> 'a wrap
+val make_inherited_term : 'a -> meta_name list (* inherited vars *) -> 'a wrap
 val make_mcode : 'a -> 'a mcode
 
 val equal_pos : fixpos -> fixpos -> bool
index 1435fdf..2f0dd7c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -140,6 +142,9 @@ let rec expression context old_metas table minus e =
   | Ast0.Assignment(left,op,right,_) ->
       expression context old_metas table minus left;
       expression ID old_metas table minus right
+  | Ast0.Sequence(left,op,right) ->
+      expression context old_metas table minus left;
+      expression ID old_metas table minus right
   | Ast0.CondExpr(exp1,why,exp2,colon,exp3) ->
       expression ID old_metas table minus exp1;
       get_opt (expression ID old_metas table minus) exp2;
@@ -186,6 +191,7 @@ let rec expression context old_metas table minus e =
       check_table table minus lenname
   | Ast0.MetaExprList(name,_,_) ->
       check_table table minus name
+  | Ast0.AsExpr(exp,asexp) -> failwith "not generated yet"
   | Ast0.DisjExpr(_,exps,_,_) ->
       List.iter (expression context old_metas table minus) exps
   | Ast0.NestExpr(_,exp_dots,_,w,_) ->
@@ -224,6 +230,7 @@ and typeC old_metas table minus t =
       get_opt (expression ID old_metas table minus) size
   | Ast0.MetaType(name,_) ->
       check_table table minus name
+  | Ast0.AsType(ty,asty) -> failwith "not generated yet"
   | Ast0.DisjType(_,types,_,_) ->
       List.iter (typeC old_metas table minus) types
   | Ast0.EnumName(en,Some id) -> ident GLOBAL old_metas table minus id
@@ -252,11 +259,12 @@ and declaration context old_metas table minus d =
       check_table table minus lenname
   | Ast0.MetaFieldList(name,_,_) ->
       check_table table minus name
+  | Ast0.AsDecl(decl,asdecl) -> failwith "not generated yet"
   | Ast0.Init(stg,ty,id,eq,ini,sem) ->
+      typeC old_metas table minus ty;
+      ident context old_metas table minus id;
       (match Ast0.unwrap ini with
        Ast0.InitExpr exp ->
-         typeC old_metas table minus ty;
-         ident context old_metas table minus id;
          expression ID old_metas table minus exp
       |        _ ->
          (*
@@ -264,14 +272,18 @@ and declaration context old_metas table minus d =
          then
            failwith "complex initializer specification not allowed in - code"
          else*)
-           (typeC old_metas table minus ty;
-            ident context old_metas table minus id;
-            initialiser old_metas table minus ini))
+           initialiser old_metas table minus ini)
   | Ast0.UnInit(stg,ty,id,sem) ->
       typeC old_metas table minus ty; ident context old_metas table minus id
   | Ast0.MacroDecl(name,lp,args,rp,sem) ->
       ident GLOBAL old_metas table minus name;
       dots (expression ID old_metas table minus) args
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      ident GLOBAL old_metas table minus name;
+      dots (expression ID old_metas table minus) args;
+      (match Ast0.unwrap ini with
+       Ast0.InitExpr exp -> expression ID old_metas table minus exp
+      |        _ -> initialiser old_metas table minus ini)
   | Ast0.TyDecl(ty,sem) -> typeC old_metas table minus ty
   | Ast0.Typedef(stg,ty,id,sem) ->
       typeC old_metas table minus ty;
@@ -295,6 +307,7 @@ and initialiser old_metas table minus ini =
       check_table table minus lenname
   | Ast0.MetaInitList(name,_,_) ->
       check_table table minus name
+  | Ast0.AsInit(ini,asini) -> failwith "not generated yet"
   | Ast0.InitExpr(exp) -> expression ID old_metas table minus exp
   | Ast0.InitList(lb,initlist,rb,ordered) ->
       dots (initialiser old_metas table minus) initlist
@@ -379,6 +392,7 @@ and statement old_metas table minus s =
   | Ast0.ReturnExpr(ret,exp,sem) -> expression ID old_metas table minus exp
   | Ast0.MetaStmt(name,_) ->     check_table table minus name
   | Ast0.MetaStmtList(name,_) -> check_table table minus name
+  | Ast0.AsStmt(stm,asstm) -> failwith "not generated yet"
   | Ast0.Exp(exp) -> expression ID old_metas table minus exp
   | Ast0.TopExp(exp) -> expression ID old_metas table minus exp
   | Ast0.Ty(ty) -> typeC old_metas table minus ty
@@ -467,11 +481,19 @@ let rule old_metas table minus rules =
 (* --------------------------------------------------------------------- *)
 
 let positions table rules =
-  let mcode x =
+  let rec rmcode x = (* needed for type inference, nonpolymorphic *)
     List.iter
-      (function Ast0.MetaPos(name,constraints,_) ->
-       let pos = Ast0.unwrap_mcode name in
-       (find_loop table pos) := true)
+      (function var ->
+       let name = Ast0.meta_pos_name var in
+       (find_loop table (Ast0.unwrap_mcode name)) := true;
+       rmcode name)
+      (Ast0.get_pos x) in
+  let rec mcode x =
+    List.iter
+      (function var ->
+       let name = Ast0.meta_pos_name var in
+       (find_loop table (Ast0.unwrap_mcode name)) := true;
+       rmcode name)
       (Ast0.get_pos x) in
   let option_default = () in
   let bind x y = () in
@@ -487,9 +509,13 @@ let positions table rules =
 
 let dup_positions rules =
   let mcode x =
-    List.map
-      (function Ast0.MetaPos(name,constraints,_) -> Ast0.unwrap_mcode name)
-      (Ast0.get_pos x) in
+    List.concat
+      (List.map
+        (function
+            Ast0.MetaPosTag(Ast0.MetaPos(name,constraints,_)) ->
+              [Ast0.unwrap_mcode name]
+          | _ -> [])
+        (Ast0.get_pos x)) in
   let option_default = [] in
   let bind x y = x@y in
 
index 371dbb9..f0ff4f0 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index bf505df..952f3a4 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 610e722..2b271df 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index f28040f..e828fbe 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -157,14 +159,14 @@ let tokenize first =
 
 let command_line args =
   let info =
-    try Some (Common.split_when (function x -> x = "-sp") args)
+    try Some (Common.split_when (function x -> List.mem x ["-sp";"--sp"]) args)
     with Not_found -> None in
   match info with
     None -> args
   | Some(pre_args,sp,post_args) ->
       (match post_args with
        first::post_args ->
-         pre_args @ "-sp_file" ::
+         pre_args @ "--sp_file" ::
                     (reparse (tokenize first)) ::
                     post_args
-      | [] -> failwith "-sp needs an argument")
+      | [] -> failwith "--sp needs an argument")
index 79fe9fd..083c0c4 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 4f6e3a2..ea6aa27 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -307,6 +309,11 @@ let rec expression e =
       let op = normal_mcode op in
       let right = expression right in
       mkres e (Ast0.Assignment(left,op,right,simple)) left right
+  | Ast0.Sequence(left,op,right) ->
+      let left = expression left in
+      let op = normal_mcode op in
+      let right = expression right in
+      mkres e (Ast0.Sequence(left,op,right)) left right
   | Ast0.CondExpr(exp1,why,exp2,colon,exp3) ->
       let exp1 = expression exp1 in
       let why = normal_mcode why in
@@ -433,6 +440,7 @@ let rec expression e =
   | Ast0.UniqueExp(exp) ->
       let exp = expression exp in
       mkres e (Ast0.UniqueExp(exp)) exp exp
+  | Ast0.AsExpr _ -> failwith "not possible"
 
 and expression_dots x = dots is_exp_dots None expression x
 
@@ -536,6 +544,7 @@ and typeC t =
       let ty = typeC ty in mkres t (Ast0.OptType(ty)) ty ty
   | Ast0.UniqueType(ty) ->
       let ty = typeC ty in mkres t (Ast0.UniqueType(ty)) ty ty
+  | Ast0.AsType _ -> failwith "not possible"
 
 (* --------------------------------------------------------------------- *)
 (* Variable declaration *)
@@ -592,6 +601,16 @@ and declaration d =
       let rp = normal_mcode rp in
       let sem = normal_mcode sem in
       mkres d (Ast0.MacroDecl(name,lp,args,rp,sem)) name (promote_mcode sem)
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      let name = ident name in
+      let lp = normal_mcode lp in
+      let args = dots is_exp_dots (Some(promote_mcode lp)) expression args in
+      let rp = normal_mcode rp in
+      let eq = normal_mcode eq in
+      let ini = initialiser ini in
+      let sem = normal_mcode sem in
+      mkres d (Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem))
+       name (promote_mcode sem)
   | Ast0.TyDecl(ty,sem) ->
       let ty = typeC ty in
       let sem = normal_mcode sem in
@@ -617,6 +636,7 @@ and declaration d =
   | Ast0.UniqueDecl(decl) ->
       let decl = declaration decl in
       mkres d (Ast0.UniqueDecl(declaration decl)) decl decl
+  | Ast0.AsDecl _ -> failwith "not possible"
 
 (* --------------------------------------------------------------------- *)
 (* Initializer *)
@@ -672,6 +692,7 @@ and initialiser i =
   | Ast0.UniqueIni(ini) ->
       let ini = initialiser ini in
       mkres i (Ast0.UniqueIni(ini)) ini ini
+  | Ast0.AsInit _ -> failwith "not possible"
 
 and designator = function
     Ast0.DesignatorField(dot,id) ->
@@ -1062,7 +1083,8 @@ let rec statement s =
     | Ast0.OptStm(stm) ->
        let stm = statement stm in mkres s (Ast0.OptStm(stm)) stm stm
     | Ast0.UniqueStm(stm) ->
-       let stm = statement stm in mkres s (Ast0.UniqueStm(stm)) stm stm in
+       let stm = statement stm in mkres s (Ast0.UniqueStm(stm)) stm stm
+    | Ast0.AsStmt _ -> failwith "not possible" in
   Ast0.set_dots_bef_aft res
     (match Ast0.get_dots_bef_aft res with
       Ast0.NoDots -> Ast0.NoDots
index 891bcc3..49fdec4 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index ac47894..27b4e01 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -59,7 +61,8 @@ let set_mcodekind x mcodekind =
   | Ast0.IsoWhenTag(_) -> failwith "only within iso phase"
   | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase"
   | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase"
-  | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase"
+  | Ast0.MetaPosTag(p) -> failwith "invisible at this stage"
+  | Ast0.HiddenVarTag(p) -> failwith "hiddenvar only within iso phase"
 
 let set_index x index =
   match x with
@@ -83,7 +86,8 @@ let set_index x index =
   | Ast0.IsoWhenTag(_) -> failwith "only within iso phase"
   | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase"
   | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase"
-  | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase"
+  | Ast0.MetaPosTag(p) -> failwith "invisible at this stage"
+  | Ast0.HiddenVarTag(p) -> failwith "hiddenvar only within iso phase"
 
 let get_index = function
     Ast0.DotsExprTag(d) -> Index.expression_dots d
@@ -106,7 +110,8 @@ let get_index = function
   | Ast0.IsoWhenTag(_) -> failwith "only within iso phase"
   | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase"
   | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase"
-  | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase"
+  | Ast0.MetaPosTag(p) -> failwith "invisible at this stage"
+  | Ast0.HiddenVarTag(p) -> failwith "hiddenvar only within iso phase"
 
 (* --------------------------------------------------------------------- *)
 (* Collect the line numbers of the plus code.  This is used for disjunctions.
@@ -424,7 +429,8 @@ let classify is_minus all_marked table code =
       | Ast0.Stars(dots,whencode) ->
          k (Ast0.rewrap s (Ast0.Stars(dots,[])))
       | Ast0.Disj(starter,statement_dots_list,_,ender) ->
-         disj_cases s starter statement_dots_list r.VT0.combiner_rec_statement_dots
+         disj_cases s starter statement_dots_list
+           r.VT0.combiner_rec_statement_dots
            ender
        (* cases for everything with extra mcode *)
       |        Ast0.FunDecl((info,bef),_,_,_,_,_,_,_,_)
@@ -500,6 +506,8 @@ let rec equal_expression e1 e2 =
       equal_mcode lp1 lp2 && equal_mcode rp1 rp2
   | (Ast0.Assignment(_,op1,_,_),Ast0.Assignment(_,op2,_,_)) ->
       equal_mcode op1 op2
+  | (Ast0.Sequence(_,op1,_),Ast0.Sequence(_,op2,_)) ->
+      equal_mcode op1 op2
   | (Ast0.CondExpr(_,why1,_,colon1,_),Ast0.CondExpr(_,why2,_,colon2,_)) ->
       equal_mcode why1 why2 && equal_mcode colon1 colon2
   | (Ast0.Postfix(_,op1),Ast0.Postfix(_,op2)) -> equal_mcode op1 op2
@@ -587,8 +595,12 @@ let equal_declaration d1 d2 =
       equal_option stg1 stg2 && equal_mcode eq1 eq2 && equal_mcode sem1 sem2
   | (Ast0.UnInit(stg1,_,_,sem1),Ast0.UnInit(stg2,_,_,sem2)) ->
       equal_option stg1 stg2 && equal_mcode sem1 sem2
-  | (Ast0.MacroDecl(nm1,lp1,_,rp1,sem1),Ast0.MacroDecl(nm2,lp2,_,rp2,sem2)) ->
+  | (Ast0.MacroDecl(nm1,lp1,_,rp1,sem1),Ast0.MacroDecl(nm2,lp2,_,rp2,sem2))->
       equal_mcode lp1 lp2 && equal_mcode rp1 rp2 && equal_mcode sem1 sem2
+  | (Ast0.MacroDeclInit(nm1,lp1,_,rp1,eq1,_,sem1),
+     Ast0.MacroDeclInit(nm2,lp2,_,rp2,eq2,_,sem2))->
+      equal_mcode lp1 lp2 && equal_mcode rp1 rp2 && equal_mcode eq1 eq2
+        && equal_mcode sem1 sem2
   | (Ast0.TyDecl(_,sem1),Ast0.TyDecl(_,sem2)) -> equal_mcode sem1 sem2
   | (Ast0.Ddots(dots1,_),Ast0.Ddots(dots2,_)) -> equal_mcode dots1 dots2
   | (Ast0.OptDecl(_),Ast0.OptDecl(_)) -> true
index da1f6c5..d304c47 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index f61a5fb..674b183 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -38,7 +40,7 @@ type clt =
     line_type * int * int * int * int (* starting spaces *) *
       (Ast_cocci.added_string * Ast0.position_info) list (* code before *) *
       (Ast_cocci.added_string * Ast0.position_info) list (* code after *) *
-      Ast0.meta_pos list (* position variable, minus only *)
+      Ast0.anything list (* position variable, minus only *)
 
 (* ---------------------------------------------------------------------- *)
 
index 41de420..85cd346 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -35,7 +37,7 @@ type clt =
     line_type * int * int * int * int (* starting spaces *) *
       (Ast_cocci.added_string * Ast0_cocci.position_info) list (*code before*) *
       (Ast_cocci.added_string * Ast0_cocci.position_info) list (*code after *) *
-      Ast0_cocci.meta_pos list (* position variable, minus only *)
+      Ast0_cocci.anything list (* position variable, minus only *)
 
 (* ---------------------------------------------------------------------- *)
 
index 7223fb8..ce7e15d 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -61,9 +63,12 @@ let disjdots f d =
 
 let rec disjty ft =
   match Ast.unwrap ft with
-    Ast.Type(cv,ty) ->
+    Ast.Type(allminus,cv,ty) ->
       let ty = disjtypeC ty in
-      List.map (function ty -> Ast.rewrap ft (Ast.Type(cv,ty))) ty
+      List.map (function ty -> Ast.rewrap ft (Ast.Type(allminus,cv,ty))) ty
+  | Ast.AsType(ty,asty) -> (* as ty doesn't contain disj *)
+      let ty = disjty ty in
+      List.map (function ty -> Ast.rewrap ft (Ast.AsType(ty,asty))) ty
   | Ast.DisjType(types) -> List.concat (List.map disjty types)
   | Ast.OptType(ty) ->
       let ty = disjty ty in
@@ -127,6 +132,10 @@ and disjexp e =
       disjmult2 (disjexp left) (disjexp right)
        (function left -> function right ->
          Ast.rewrap e (Ast.Assignment(left,op,right,simple)))
+  | Ast.Sequence(left,op,right) ->
+      disjmult2 (disjexp left) (disjexp right)
+       (function left -> function right ->
+         Ast.rewrap e (Ast.Sequence(left,op,right)))
   | Ast.CondExpr(exp1,why,Some exp2,colon,exp3) ->
       let res = disjmult disjexp [exp1;exp2;exp3] in
       List.map
@@ -190,6 +199,9 @@ and disjexp e =
          function exp -> Ast.rewrap e (Ast.Constructor(lp,ty,rp,init)))
   | Ast.MetaErr(_,_,_,_) | Ast.MetaExpr(_,_,_,_,_,_)
   | Ast.MetaExprList(_,_,_,_) | Ast.EComma(_) -> [e]
+  | Ast.AsExpr(exp,asexp) -> (* as exp doesn't contain disj *)
+      let exp = disjexp exp in
+      List.map (function exp -> Ast.rewrap e (Ast.AsExpr(exp,asexp))) exp
   | Ast.DisjExpr(exp_list) -> List.concat (List.map disjexp exp_list)
   | Ast.NestExpr(starter,expr_dots,ender,whencode,multi) ->
       (* not sure what to do here, so ambiguities still possible *)
@@ -220,6 +232,9 @@ and disjparam p =
 and disjini i =
   match Ast.unwrap i with
     Ast.MetaInit(_,_,_) | Ast.MetaInitList(_,_,_,_) -> [i]
+  | Ast.AsInit(ini,asini) ->
+      let ini = disjini ini in
+      List.map (function ini -> Ast.rewrap i (Ast.AsInit(ini,asini))) ini
   | Ast.InitExpr(exp) ->
       let exp = disjexp exp in
       List.map (function exp -> Ast.rewrap i (Ast.InitExpr(exp))) exp
@@ -267,6 +282,9 @@ and disjdecl d =
   match Ast.unwrap d with
     Ast.MetaDecl(_,_,_) | Ast.MetaField(_,_,_)
   | Ast.MetaFieldList(_,_,_,_) -> [d]
+  | Ast.AsDecl(decl,asdecl) ->
+      let decl = disjdecl decl in
+      List.map (function decl -> Ast.rewrap d (Ast.AsDecl(decl,asdecl))) decl
   | Ast.Init(stg,ty,id,eq,ini,sem) ->
       disjmult2 (disjty ty) (disjini ini)
        (function ty -> function ini ->
@@ -278,6 +296,10 @@ and disjdecl d =
       List.map
        (function args -> Ast.rewrap d (Ast.MacroDecl(name,lp,args,rp,sem)))
        (disjdots disjexp args)
+  | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      disjmult2 (disjdots disjexp args) (disjini ini)
+       (function args -> function ini ->
+         Ast.rewrap d (Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem)))
   | Ast.TyDecl(ty,sem) ->
       let ty = disjty ty in
       List.map (function ty -> Ast.rewrap d (Ast.TyDecl(ty,sem))) ty
index cf420d0..82f2a45 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 942e4e0..b824e26 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 77c294e..995339c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index d7fd980..fecda61 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 257e0ca..3f42d37 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 363db5c..d1f3498 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 3864d91..31a479f 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 713a368..11f1467 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 250f95e..4b7cb1a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 02ba70b..19a19ca 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
diff --git a/parsing_cocci/get_metas.ml b/parsing_cocci/get_metas.ml
new file mode 100644 (file)
index 0000000..cda51ab
--- /dev/null
@@ -0,0 +1,840 @@
+(*
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
+ * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
+ * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
+ * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
+ * This file is part of Coccinelle.
+ *
+ * Coccinelle is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, according to version 2 of the License.
+ *
+ * Coccinelle is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Coccinelle.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The authors reserve the right to distribute this or future versions of
+ * Coccinelle under other licenses.
+ *)
+
+
+(* --------------------------------------------------------------------- *)
+(* creates AsExpr, etc *)
+(* @ attached metavariables can only be associated with positions, so nothing
+to do for them *)
+
+module Ast = Ast_cocci
+module Ast0 = Ast0_cocci
+
+let map_split f l = List.split(List.map f l)
+
+let rewrap x (n,e) = (n,Ast0.rewrap x e)
+
+let mcode x =
+  let nonpos l =
+    List.filter (function Ast0.MetaPosTag _ -> false | _ -> true) l in
+  (nonpos(Ast0.get_pos x),x)
+
+let option_default = []
+
+let bind l1 l2 =
+  let oldnames = List.map Ast0.meta_pos_name l2 in
+  List.fold_left
+    (function prev -> function e1 ->
+      if List.mem (Ast0.meta_pos_name e1) oldnames then prev else e1::prev)
+    l2 l1
+
+let multibind l =
+  let rec loop = function
+      [] -> option_default
+    | [x] -> x
+    | x::xs -> bind x (loop xs) in
+  loop l
+
+let map_split_bind f l =
+  let (n,e) = List.split(List.map f l) in (multibind n,e)
+
+let get_option f = function
+    Some x -> let (n,e) = f x in (n,Some e)
+  | None -> (option_default,None)
+
+let do_disj starter lst mids ender processor rebuilder =
+  let (starter_n,starter) = mcode starter in
+  let (lst_n,lst) = map_split processor lst in
+  let (mids_n,mids) = map_split mcode mids in
+  let (ender_n,ender) = mcode ender in
+  (multibind
+     [starter_n;List.hd lst_n;
+       multibind (List.map2 bind mids_n (List.tl lst_n));ender_n],
+   rebuilder starter lst mids ender)
+
+let dots fn d =
+  rewrap d
+    (match Ast0.unwrap d with
+      Ast0.DOTS(l) ->
+       let (n,l) = map_split_bind fn l in (n, Ast0.DOTS(l))
+    | Ast0.CIRCLES(l) ->
+       let (n,l) = map_split_bind fn l in (n, Ast0.CIRCLES(l))
+    | Ast0.STARS(l) ->
+       let (n,l) = map_split_bind fn l in (n, Ast0.STARS(l)))
+    
+let rec ident i =
+  rewrap i
+    (match Ast0.unwrap i with
+      Ast0.Id(name) ->
+       let (n,name) = mcode name in (n,Ast0.Id(name))
+    | Ast0.MetaId(name,constraints,seed,pure) ->
+       let (n,name) = mcode name in
+       (n,Ast0.MetaId(name,constraints,seed,pure))
+    | Ast0.MetaFunc(name,constraints,pure) ->
+       let (n,name) = mcode name in
+       (n,Ast0.MetaFunc(name,constraints,pure))
+    | Ast0.MetaLocalFunc(name,constraints,pure) ->
+       let (n,name) = mcode name in
+       (n,Ast0.MetaLocalFunc(name,constraints,pure))
+    | Ast0.DisjId(starter,id_list,mids,ender) ->
+       do_disj starter id_list mids ender ident
+         (fun starter id_list mids ender ->
+           Ast0.DisjId(starter,id_list,mids,ender))
+    | Ast0.OptIdent(id) ->
+       let (n,id) = ident id in (n,Ast0.OptIdent(id))
+    | Ast0.UniqueIdent(id) ->
+       let (n,id) = ident id in (n,Ast0.UniqueIdent(id)))
+    
+and expression e =
+  let (metas,e) =
+    rewrap e
+      (match Ast0.unwrap e with
+       Ast0.Ident(id) ->
+         let (n,id) = ident id in (n,Ast0.Ident(id))
+      | Ast0.Constant(const) ->
+         let (n,const) = mcode const in (n,Ast0.Constant(const))
+      | Ast0.FunCall(fn,lp,args,rp) ->
+         let (fn_n,fn) = expression fn in
+         let (lp_n,lp) = mcode lp in
+         let (args_n,args) = dots expression args in
+         let (rp_n,rp) = mcode rp in
+         (multibind [fn_n;lp_n;args_n;rp_n], Ast0.FunCall(fn,lp,args,rp))
+      | Ast0.Assignment(left,op,right,simple) ->
+         let (left_n,left) = expression left in
+         let (op_n,op) = mcode op in
+         let (right_n,right) = expression right in
+         (multibind [left_n;op_n;right_n],
+          Ast0.Assignment(left,op,right,simple))
+      | Ast0.Sequence(left,op,right) ->
+         let (left_n,left) = expression left in
+         let (op_n,op) = mcode op in
+         let (right_n,right) = expression right in
+         (multibind [left_n;op_n;right_n],
+          Ast0.Sequence(left,op,right))
+      | Ast0.CondExpr(exp1,why,exp2,colon,exp3) ->
+         let (exp1_n,exp1) = expression exp1 in
+         let (why_n,why) = mcode why in
+         let (exp2_n,exp2) = get_option expression exp2 in
+         let (colon_n,colon) = mcode colon in
+         let (exp3_n,exp3) = expression exp3 in
+         (multibind [exp1_n;why_n;exp2_n;colon_n;exp3_n],
+          Ast0.CondExpr(exp1,why,exp2,colon,exp3))
+      | Ast0.Postfix(exp,op) ->
+         let (exp_n,exp) = expression exp in
+         let (op_n,op) = mcode op in
+         (bind exp_n op_n, Ast0.Postfix(exp,op))
+      | Ast0.Infix(exp,op) ->
+         let (exp_n,exp) = expression exp in
+         let (op_n,op) = mcode op in
+         (bind op_n exp_n, Ast0.Infix(exp,op))
+      | Ast0.Unary(exp,op) ->
+         let (exp_n,exp) = expression exp in
+         let (op_n,op) = mcode op in
+         (bind op_n exp_n, Ast0.Unary(exp,op))
+      | Ast0.Binary(left,op,right) ->
+         let (left_n,left) = expression left in
+         let (op_n,op) = mcode op in
+         let (right_n,right) = expression right in
+         (multibind [left_n;op_n;right_n], Ast0.Binary(left,op,right))
+      | Ast0.Nested(left,op,right) ->
+         let (left_n,left) = expression left in
+         let (op_n,op) = mcode op in
+         let (right_n,right) = expression right in
+         (multibind [left_n;op_n;right_n], Ast0.Nested(left,op,right))
+      | Ast0.Paren(lp,exp,rp) ->
+         let (lp_n,lp) = mcode lp in
+         let (exp_n,exp) = expression exp in
+         let (rp_n,rp) = mcode rp in
+         (multibind [lp_n;exp_n;rp_n], Ast0.Paren(lp,exp,rp))
+      | Ast0.ArrayAccess(exp1,lb,exp2,rb) ->
+         let (exp1_n,exp1) = expression exp1 in
+         let (lb_n,lb) = mcode lb in
+         let (exp2_n,exp2) = expression exp2 in
+         let (rb_n,rb) = mcode rb in
+         (multibind [exp1_n;lb_n;exp2_n;rb_n],
+          Ast0.ArrayAccess(exp1,lb,exp2,rb))
+      | Ast0.RecordAccess(exp,pt,field) ->
+         let (exp_n,exp) = expression exp in
+         let (pt_n,pt) = mcode pt in
+         let (field_n,field) = ident field in
+         (multibind [exp_n;pt_n;field_n], Ast0.RecordAccess(exp,pt,field))
+      | Ast0.RecordPtAccess(exp,ar,field) ->
+         let (exp_n,exp) = expression exp in
+         let (ar_n,ar) = mcode ar in
+         let (field_n,field) = ident field in
+         (multibind [exp_n;ar_n;field_n], Ast0.RecordPtAccess(exp,ar,field))
+      | Ast0.Cast(lp,ty,rp,exp) ->
+         let (lp_n,lp) = mcode lp in
+         let (ty_n,ty) = typeC ty in
+         let (rp_n,rp) = mcode rp in
+         let (exp_n,exp) = expression exp in
+         (multibind [lp_n;ty_n;rp_n;exp_n], Ast0.Cast(lp,ty,rp,exp))
+      | Ast0.SizeOfExpr(szf,exp) ->
+         let (szf_n,szf) = mcode szf in
+         let (exp_n,exp) = expression exp in
+         (multibind [szf_n;exp_n],Ast0.SizeOfExpr(szf,exp))
+      | Ast0.SizeOfType(szf,lp,ty,rp) ->
+         let (szf_n,szf) = mcode szf in
+         let (lp_n,lp) = mcode lp in
+         let (ty_n,ty) = typeC ty in
+          let (rp_n,rp) = mcode rp in
+         (multibind [szf_n;lp_n;ty_n;rp_n], Ast0.SizeOfType(szf,lp,ty,rp))
+      | Ast0.TypeExp(ty) ->
+         let (ty_n,ty) = typeC ty in
+         (ty_n,Ast0.TypeExp(ty))
+      | Ast0.Constructor(lp,ty,rp,init) ->
+         let (lp_n,lp) = mcode lp in
+         let (ty_n,ty) = typeC ty in
+         let (rp_n,rp) = mcode rp in
+         let (init_n,init) = initialiser init in
+         (multibind [lp_n;ty_n;rp_n;init_n], Ast0.Constructor(lp,ty,rp,init))
+      | Ast0.MetaErr(name,constraints,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaErr(name,constraints,pure))
+      | Ast0.MetaExpr(name,constraints,ty,form,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaExpr(name,constraints,ty,form,pure))
+      | Ast0.MetaExprList(name,lenname,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaExprList(name,lenname,pure))
+      |        Ast0.AsExpr _ -> failwith "not possible"
+      | Ast0.EComma(cm) ->
+         let (cm_n,cm) = mcode cm in (cm_n,Ast0.EComma(cm))
+      | Ast0.DisjExpr(starter,expr_list,mids,ender) ->
+         do_disj starter expr_list mids ender expression
+           (fun starter expr_list mids ender ->
+             Ast0.DisjExpr(starter,expr_list,mids,ender))
+      | Ast0.NestExpr(starter,expr_dots,ender,whencode,multi) ->
+         let (starter_n,starter) = mcode starter in
+         let (expr_dots_n,expr_dots) = dots expression expr_dots in
+         let (ender_n,ender) = mcode ender in
+         let (whencode_n,whencode) = get_option expression whencode in
+         (multibind [starter_n;expr_dots_n;ender_n;whencode_n],
+          Ast0.NestExpr(starter,expr_dots,ender,whencode,multi))
+      | Ast0.Edots(dots,whencode) ->
+         let (dots_n,dots) = mcode dots in
+         let (whencode_n,whencode) = get_option expression whencode in
+         (bind dots_n whencode_n,Ast0.Edots(dots,whencode))
+      | Ast0.Ecircles(dots,whencode) ->
+         let (dots_n,dots) = mcode dots in
+         let (whencode_n,whencode) = get_option expression whencode in
+         (bind dots_n whencode_n,Ast0.Ecircles(dots,whencode))
+      | Ast0.Estars(dots,whencode) ->
+         let (dots_n,dots) = mcode dots in
+         let (whencode_n,whencode) = get_option expression whencode in
+         (bind dots_n whencode_n,Ast0.Estars(dots,whencode))
+      | Ast0.OptExp(exp) ->
+         let (exp_n,exp) = expression exp in
+         (exp_n,Ast0.OptExp(exp))
+      | Ast0.UniqueExp(exp) ->
+         let (exp_n,exp) = expression exp in
+         (exp_n,Ast0.UniqueExp(exp))) in
+    List.fold_left
+      (function (other_metas,exp) ->
+       function
+           Ast0.ExprTag(exp_meta) ->
+             (other_metas,Ast0.rewrap exp (Ast0.AsExpr(exp,exp_meta)))
+         | x -> (x::other_metas,exp))
+      ([],e) metas
+
+and typeC t =
+  let (metas,t) =
+    rewrap t
+      (match Ast0.unwrap t with
+       Ast0.ConstVol(cv,ty) ->
+         let (cv_n,cv) = mcode cv in
+         let (ty_n,ty) = typeC ty in
+         (bind cv_n ty_n, Ast0.ConstVol(cv,ty))
+      | Ast0.BaseType(ty,strings) ->
+         let (strings_n,strings) = map_split_bind mcode strings in
+         (strings_n, Ast0.BaseType(ty,strings))
+      | Ast0.Signed(sign,ty) ->
+         let (sign_n,sign) = mcode sign in
+         let (ty_n,ty) = get_option typeC ty in
+         (bind sign_n ty_n, Ast0.Signed(sign,ty))
+      | Ast0.Pointer(ty,star) ->
+         let (ty_n,ty) = typeC ty in
+         let (star_n,star) = mcode star in
+         (bind ty_n star_n, Ast0.Pointer(ty,star))
+      | Ast0.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) ->
+         function_pointer (ty,lp1,star,rp1,lp2,params,rp2) []
+      | Ast0.FunctionType(ty,lp1,params,rp1) ->
+         function_type (ty,lp1,params,rp1) []
+      | Ast0.Array(ty,lb,size,rb) -> array_type (ty,lb,size,rb) []
+      | Ast0.EnumName(kind,name) ->
+         let (kind_n,kind) = mcode kind in
+         let (name_n,name) = get_option ident name in
+         (bind kind_n name_n, Ast0.EnumName(kind,name))
+      | Ast0.EnumDef(ty,lb,ids,rb) ->
+         let (ty_n,ty) = typeC ty in
+         let (lb_n,lb) = mcode lb in
+         let (ids_n,ids) = dots expression ids in
+         let (rb_n,rb) = mcode rb in
+         (multibind [ty_n;lb_n;ids_n;rb_n], Ast0.EnumDef(ty,lb,ids,rb))
+      | Ast0.StructUnionName(kind,name) ->
+         let (kind_n,kind) = mcode kind in
+         let (name_n,name) = get_option ident name in
+         (bind kind_n name_n, Ast0.StructUnionName(kind,name))
+      | Ast0.StructUnionDef(ty,lb,decls,rb) ->
+         let (ty_n,ty) = typeC ty in
+         let (lb_n,lb) = mcode lb in
+         let (decls_n,decls) = dots declaration decls in
+         let (rb_n,rb) = mcode rb in
+         (multibind [ty_n;lb_n;decls_n;rb_n],
+          Ast0.StructUnionDef(ty,lb,decls,rb))
+      | Ast0.TypeName(name) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.TypeName(name))
+      | Ast0.MetaType(name,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaType(name,pure))
+      |        Ast0.AsType _ -> failwith "not possible"
+      | Ast0.DisjType(starter,types,mids,ender) ->
+         do_disj starter types mids ender typeC
+           (fun starter types mids ender ->
+             Ast0.DisjType(starter,types,mids,ender))
+      | Ast0.OptType(ty) ->
+         let (ty_n,ty) = typeC ty in (ty_n, Ast0.OptType(ty))
+      | Ast0.UniqueType(ty) ->
+         let (ty_n,ty) = typeC ty in (ty_n, Ast0.UniqueType(ty))) in
+  List.fold_left
+    (function (other_metas,ty) ->
+      function
+         Ast0.TypeCTag(ty_meta) ->
+           (other_metas,Ast0.rewrap ty (Ast0.AsType(ty,ty_meta)))
+       | x -> (x::other_metas,ty))
+    ([],t) metas
+    
+and function_pointer (ty,lp1,star,rp1,lp2,params,rp2) extra =
+  let (ty_n,ty) = typeC ty in
+  let (lp1_n,lp1) = mcode lp1 in
+  let (star_n,star) = mcode star in
+  let (rp1_n,rp1) = mcode rp1 in
+  let (lp2_n,lp2) = mcode lp2 in
+  let (params_n,params) = dots parameterTypeDef params in
+  let (rp2_n,rp2) = mcode rp2 in
+    (* have to put the treatment of the identifier into the right position *)
+  (multibind ([ty_n;lp1_n;star_n] @ extra @ [rp1_n;lp2_n;params_n;rp2_n]),
+   Ast0.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2))
+and function_type (ty,lp1,params,rp1) extra =
+  let (ty_n,ty) = get_option typeC ty in
+  let (lp1_n,lp1) = mcode lp1 in
+  let (params_n,params) = dots parameterTypeDef params in
+  let (rp1_n,rp1) = mcode rp1 in
+    (* have to put the treatment of the identifier into the right position *)
+  (multibind (ty_n :: extra @ [lp1_n;params_n;rp1_n]),
+   Ast0.FunctionType(ty,lp1,params,rp1))
+and array_type (ty,lb,size,rb) extra =
+  let (ty_n,ty) = typeC ty in
+  let (lb_n,lb) = mcode lb in
+  let (size_n,size) = get_option expression size in
+  let (rb_n,rb) = mcode rb in
+  (multibind (ty_n :: extra @ [lb_n;size_n;rb_n]),
+   Ast0.Array(ty,lb,size,rb))
+    
+and named_type ty id =
+  let (id_n,id) = ident id in
+  match Ast0.unwrap ty with
+    Ast0.FunctionPointer(rty,lp1,star,rp1,lp2,params,rp2) ->
+      let tyres =
+       function_pointer (rty,lp1,star,rp1,lp2,params,rp2) [id_n] in
+      (rewrap ty tyres, id)
+  | Ast0.FunctionType(rty,lp1,params,rp1) ->
+      let tyres = function_type (rty,lp1,params,rp1) [id_n] in
+      (rewrap ty tyres, id)
+  | Ast0.Array(rty,lb,size,rb) ->
+      let tyres = array_type (rty,lb,size,rb) [id_n] in
+      (rewrap ty tyres, id)
+  | _ -> let (ty_n,ty) = typeC ty in ((bind ty_n id_n, ty), id)
+      
+and declaration d =
+  let (metas,d) =
+    rewrap d
+      (match Ast0.unwrap d with
+       Ast0.MetaDecl(name,pure) ->
+         let (n,name) = mcode name in
+         (n,Ast0.MetaDecl(name,pure))
+      | Ast0.MetaField(name,pure) ->
+         let (n,name) = mcode name in
+         (n,Ast0.MetaField(name,pure))
+      | Ast0.MetaFieldList(name,lenname,pure) ->
+         let (n,name) = mcode name in
+         (n,Ast0.MetaFieldList(name,lenname,pure))
+      |        Ast0.AsDecl _ -> failwith "not possible"
+      | Ast0.Init(stg,ty,id,eq,ini,sem) ->
+         let (stg_n,stg) = get_option mcode stg in
+         let ((ty_id_n,ty),id) = named_type ty id in
+         let (eq_n,eq) = mcode eq in
+         let (ini_n,ini) = initialiser ini in
+         let (sem_n,sem) = mcode sem in
+         (multibind [stg_n;ty_id_n;eq_n;ini_n;sem_n],
+          Ast0.Init(stg,ty,id,eq,ini,sem))
+      | Ast0.UnInit(stg,ty,id,sem) ->
+         let (stg_n,stg) = get_option mcode stg in
+         let ((ty_id_n,ty),id) = named_type ty id in
+         let (sem_n,sem) = mcode sem in
+         (multibind [stg_n;ty_id_n;sem_n], Ast0.UnInit(stg,ty,id,sem))
+      | Ast0.MacroDecl(name,lp,args,rp,sem) ->
+         let (name_n,name) = ident name in
+         let (lp_n,lp) = mcode lp in
+         let (args_n,args) = dots expression args in
+         let (rp_n,rp) = mcode rp in
+         let (sem_n,sem) = mcode sem in
+         (multibind [name_n;lp_n;args_n;rp_n;sem_n],
+          Ast0.MacroDecl(name,lp,args,rp,sem))
+      | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+          let (name_n,name) = ident name in
+          let (lp_n,lp) = mcode lp in
+          let (args_n,args) = dots expression args in
+          let (rp_n,rp) = mcode rp in
+          let (eq_n,eq) = mcode eq in
+          let (ini_n,ini) = initialiser ini in
+          let (sem_n,sem) = mcode sem in
+          (multibind [name_n;lp_n;args_n;rp_n;eq_n;ini_n;sem_n],
+           Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem))
+      | Ast0.TyDecl(ty,sem) ->
+         let (ty_n,ty) = typeC ty in
+         let (sem_n,sem) = mcode sem in
+         (bind ty_n sem_n, Ast0.TyDecl(ty,sem))
+      | Ast0.Typedef(stg,ty,id,sem) ->
+         let (stg_n,stg) = mcode stg in
+         let (ty_n,ty) = typeC ty in
+         let (id_n,id) = typeC id in
+         let (sem_n,sem) = mcode sem in
+         (multibind [stg_n;ty_n;id_n;sem_n], Ast0.Typedef(stg,ty,id,sem))
+      | Ast0.DisjDecl(starter,decls,mids,ender) ->
+         do_disj starter decls mids ender declaration
+           (fun starter decls mids ender ->
+             Ast0.DisjDecl(starter,decls,mids,ender))
+      | Ast0.Ddots(dots,whencode) ->
+         let (dots_n,dots) = mcode dots in
+         let (whencode_n,whencode) = get_option declaration whencode in
+         (bind dots_n whencode_n, Ast0.Ddots(dots,whencode))
+      | Ast0.OptDecl(decl) ->
+         let (n,decl) = declaration decl in (n,Ast0.OptDecl(decl))
+      | Ast0.UniqueDecl(decl) ->
+         let (n,decl) = declaration decl in (n,Ast0.UniqueDecl(decl))) in
+  List.fold_left
+    (function (other_metas,decl) ->
+      function
+         Ast0.DeclTag(decl_meta) ->
+           (other_metas,Ast0.rewrap decl (Ast0.AsDecl(decl,decl_meta)))
+       | x -> (x::other_metas,decl))
+    ([],d) metas
+
+and initialiser i =
+  let (metas,i) =
+    rewrap i
+      (match Ast0.unwrap i with
+       Ast0.MetaInit(name,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaInit(name,pure))
+      | Ast0.MetaInitList(name,lenname,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaInitList(name,lenname,pure))
+      |        Ast0.AsInit _ -> failwith "not possible"
+      | Ast0.InitExpr(exp) ->
+         let (exp_n,exp) = expression exp in
+         (exp_n,Ast0.InitExpr(exp))
+      | Ast0.InitList(lb,initlist,rb,ordered) ->
+         let (lb_n,lb) = mcode lb in
+         let (initlist_n,initlist) = dots initialiser initlist in
+         let (rb_n,rb) = mcode rb in
+         (multibind [lb_n;initlist_n;rb_n],
+          Ast0.InitList(lb,initlist,rb,ordered))
+      | Ast0.InitGccExt(designators,eq,ini) ->
+         let (dn,designators) = map_split_bind designator designators in
+         let (eq_n,eq) = mcode eq in
+         let (ini_n,ini) = initialiser ini in
+         (multibind [dn;eq_n;ini_n], Ast0.InitGccExt(designators,eq,ini))
+      | Ast0.InitGccName(name,eq,ini) ->
+         let (name_n,name) = ident name in
+         let (eq_n,eq) = mcode eq in
+         let (ini_n,ini) = initialiser ini in
+         (multibind [name_n;eq_n;ini_n], Ast0.InitGccName(name,eq,ini))
+      | Ast0.IComma(cm) ->
+         let (n,cm) = mcode cm in (n,Ast0.IComma(cm))
+      | Ast0.Idots(d,whencode) ->
+         let (d_n,d) = mcode d in
+         let (whencode_n,whencode) = get_option initialiser whencode in
+         (bind d_n whencode_n, Ast0.Idots(d,whencode))
+      | Ast0.OptIni(i) ->
+         let (n,i) = initialiser i in (n,Ast0.OptIni(i))
+      | Ast0.UniqueIni(i) ->
+         let (n,i) = initialiser i in (n,Ast0.UniqueIni(i))) in
+  List.fold_left
+    (function (other_metas,init) ->
+      function
+         Ast0.InitTag(init_meta) ->
+           (other_metas,Ast0.rewrap init (Ast0.AsInit(init,init_meta)))
+       | x -> (x::other_metas,init))
+    ([],i) metas
+
+and designator = function
+    Ast0.DesignatorField(dot,id) ->
+      let (dot_n,dot) = mcode dot in
+      let (id_n,id) = ident id in
+      (bind dot_n id_n, Ast0.DesignatorField(dot,id))
+  | Ast0.DesignatorIndex(lb,exp,rb) ->
+      let (lb_n,lb) = mcode lb in
+      let (exp_n,exp) = expression exp in
+      let (rb_n,rb) = mcode rb in
+      (multibind [lb_n;exp_n;rb_n], Ast0.DesignatorIndex(lb,exp,rb))
+  | Ast0.DesignatorRange(lb,min,dots,max,rb) ->
+      let (lb_n,lb) = mcode lb in
+      let (min_n,min) = expression min in
+      let (dots_n,dots) = mcode dots in
+      let (max_n,max) = expression max in
+      let (rb_n,rb) = mcode rb in
+      (multibind [lb_n;min_n;dots_n;max_n;rb_n],
+       Ast0.DesignatorRange(lb,min,dots,max,rb))
+       
+and parameterTypeDef p =
+  rewrap p
+    (match Ast0.unwrap p with
+      Ast0.VoidParam(ty) ->
+       let (n,ty) = typeC ty in (n,Ast0.VoidParam(ty))
+    | Ast0.Param(ty,Some id) ->
+       let ((ty_id_n,ty),id) = named_type ty id in
+       (ty_id_n, Ast0.Param(ty,Some id))
+    | Ast0.Param(ty,None) ->
+       let (ty_n,ty) = typeC ty in
+       (ty_n, Ast0.Param(ty,None))
+    | Ast0.MetaParam(name,pure) ->
+       let (n,name) = mcode name in
+       (n,Ast0.MetaParam(name,pure))
+    | Ast0.MetaParamList(name,lenname,pure) ->
+       let (n,name) = mcode name in
+       (n,Ast0.MetaParamList(name,lenname,pure))
+    | Ast0.PComma(cm) ->
+       let (n,cm) = mcode cm in (n,Ast0.PComma(cm))
+    | Ast0.Pdots(dots) ->
+       let (n,dots) = mcode dots in (n,Ast0.Pdots(dots))
+    | Ast0.Pcircles(dots) ->
+       let (n,dots) = mcode dots in (n,Ast0.Pcircles(dots))
+    | Ast0.OptParam(param) ->
+       let (n,param) = parameterTypeDef param in (n,Ast0.OptParam(param))
+    | Ast0.UniqueParam(param) ->
+       let (n,param) = parameterTypeDef param in
+       (n,Ast0.UniqueParam(param)))
+    
+and statement s =
+  let (metas,s) =
+    rewrap s
+      (match Ast0.unwrap s with
+       Ast0.FunDecl(bef,fi,name,lp,params,rp,lbrace,body,rbrace) ->
+         let (fi_n,fi) = map_split_bind fninfo fi in
+         let (name_n,name) = ident name in
+         let (lp_n,lp) = mcode lp in
+         let (params_n,params) = dots parameterTypeDef params in
+         let (rp_n,rp) = mcode rp in
+         let (lbrace_n,lbrace) = mcode lbrace in
+         let (body_n,body) = dots statement body in
+         let (rbrace_n,rbrace) = mcode rbrace in
+         (multibind
+            [fi_n;name_n;lp_n;params_n;rp_n;lbrace_n;body_n;rbrace_n],
+          Ast0.FunDecl(bef,fi,name,lp,params,rp,lbrace,body,rbrace))
+      | Ast0.Decl(bef,decl) ->
+         let (decl_n,decl) = declaration decl in
+         (decl_n,Ast0.Decl(bef,decl))
+      | Ast0.Seq(lbrace,body,rbrace) ->
+         let (lbrace_n,lbrace) = mcode lbrace in
+         let (body_n,body) = dots statement body in
+         let (rbrace_n,rbrace) = mcode rbrace in
+         (multibind [lbrace_n;body_n;rbrace_n],
+          Ast0.Seq(lbrace,body,rbrace))
+      | Ast0.ExprStatement(exp,sem) ->
+         let (exp_n,exp) = get_option expression exp in
+         let (sem_n,sem) = mcode sem in
+         (bind exp_n sem_n, Ast0.ExprStatement(exp,sem))
+      | Ast0.IfThen(iff,lp,exp,rp,branch1,aft) ->
+         let (iff_n,iff) = mcode iff in
+         let (lp_n,lp) = mcode lp in
+         let (exp_n,exp) = expression exp in
+         let (rp_n,rp) = mcode rp in
+         let (branch1_n,branch1) = statement branch1 in
+         (multibind [iff_n;lp_n;exp_n;rp_n;branch1_n],
+          Ast0.IfThen(iff,lp,exp,rp,branch1,aft))
+      | Ast0.IfThenElse(iff,lp,exp,rp,branch1,els,branch2,aft) ->
+         let (iff_n,iff) = mcode iff in
+         let (lp_n,lp) = mcode lp in
+         let (exp_n,exp) = expression exp in
+         let (rp_n,rp) = mcode rp in
+         let (branch1_n,branch1) = statement branch1 in
+         let (els_n,els) = mcode els in
+         let (branch2_n,branch2) = statement branch2 in
+         (multibind [iff_n;lp_n;exp_n;rp_n;branch1_n;els_n;branch2_n],
+          Ast0.IfThenElse(iff,lp,exp,rp,branch1,els,branch2,aft))
+      | Ast0.While(whl,lp,exp,rp,body,aft) ->
+         let (whl_n,whl) = mcode whl in
+         let (lp_n,lp) = mcode lp in
+         let (exp_n,exp) = expression exp in
+         let (rp_n,rp) = mcode rp in
+         let (body_n,body) = statement body in
+         (multibind [whl_n;lp_n;exp_n;rp_n;body_n],
+          Ast0.While(whl,lp,exp,rp,body,aft))
+      | Ast0.Do(d,body,whl,lp,exp,rp,sem) ->
+         let (d_n,d) = mcode d in
+         let (body_n,body) = statement body in
+         let (whl_n,whl) = mcode whl in
+         let (lp_n,lp) = mcode lp in
+         let (exp_n,exp) = expression exp in
+         let (rp_n,rp) =  mcode rp in
+         let (sem_n,sem) = mcode sem in
+         (multibind [d_n;body_n;whl_n;lp_n;exp_n;rp_n;sem_n],
+          Ast0.Do(d,body,whl,lp,exp,rp,sem))
+      | Ast0.For(fr,lp,e1,sem1,e2,sem2,e3,rp,body,aft) ->
+         let (fr_n,fr) = mcode fr in
+         let (lp_n,lp) = mcode lp in
+         let (e1_n,e1) = get_option expression e1 in
+         let (sem1_n,sem1) = mcode sem1 in
+         let (e2_n,e2) = get_option expression e2 in
+         let (sem2_n,sem2) = mcode sem2 in
+         let (e3_n,e3) = get_option expression e3 in
+         let (rp_n,rp) = mcode rp in
+         let (body_n,body) = statement body in
+         (multibind [fr_n;lp_n;e1_n;sem1_n;e2_n;sem2_n;e3_n;rp_n;body_n],
+          Ast0.For(fr,lp,e1,sem1,e2,sem2,e3,rp,body,aft))
+      | Ast0.Iterator(nm,lp,args,rp,body,aft) ->
+         let (nm_n,nm) = ident nm in
+         let (lp_n,lp) = mcode lp in
+         let (args_n,args) = dots expression args in
+         let (rp_n,rp) = mcode rp in
+         let (body_n,body) = statement body in
+         (multibind [nm_n;lp_n;args_n;rp_n;body_n],
+          Ast0.Iterator(nm,lp,args,rp,body,aft))
+      | Ast0.Switch(switch,lp,exp,rp,lb,decls,cases,rb) ->
+         let (switch_n,switch) = mcode switch in
+         let (lp_n,lp) = mcode lp in
+         let (exp_n,exp) = expression exp in
+         let (rp_n,rp) = mcode rp in
+         let (lb_n,lb) = mcode lb in
+         let (decls_n,decls) = dots statement decls in
+         let (cases_n,cases) = dots case_line cases in
+         let (rb_n,rb) = mcode rb in
+         (multibind [switch_n;lp_n;exp_n;rp_n;lb_n;decls_n;cases_n;rb_n],
+          Ast0.Switch(switch,lp,exp,rp,lb,decls,cases,rb))
+      | Ast0.Break(br,sem) ->
+         let (br_n,br) = mcode br in
+         let (sem_n,sem) = mcode sem in
+         (bind br_n sem_n, Ast0.Break(br,sem))
+      | Ast0.Continue(cont,sem) ->
+         let (cont_n,cont) = mcode cont in
+         let (sem_n,sem) = mcode sem in
+         (bind cont_n sem_n, Ast0.Continue(cont,sem))
+      | Ast0.Label(l,dd) ->
+         let (l_n,l) = ident l in
+         let (dd_n,dd) = mcode dd in
+         (bind l_n dd_n, Ast0.Label(l,dd))
+      | Ast0.Goto(goto,l,sem) ->
+         let (goto_n,goto) = mcode goto in
+         let (l_n,l) = ident l in
+         let (sem_n,sem) = mcode sem in
+         (bind goto_n (bind l_n sem_n), Ast0.Goto(goto,l,sem))
+      | Ast0.Return(ret,sem) ->
+         let (ret_n,ret) = mcode ret in
+         let (sem_n,sem) = mcode sem in
+         (bind ret_n sem_n, Ast0.Return(ret,sem))
+      | Ast0.ReturnExpr(ret,exp,sem) ->
+         let (ret_n,ret) = mcode ret in
+         let (exp_n,exp) = expression exp in
+         let (sem_n,sem) = mcode sem in
+         (multibind [ret_n;exp_n;sem_n], Ast0.ReturnExpr(ret,exp,sem))
+      | Ast0.MetaStmt(name,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaStmt(name,pure))
+      | Ast0.MetaStmtList(name,pure) ->
+         let (name_n,name) = mcode name in
+         (name_n,Ast0.MetaStmtList(name,pure))
+      |        Ast0.AsStmt _ -> failwith "not possible"
+      | Ast0.Disj(starter,statement_dots_list,mids,ender) ->
+         do_disj starter statement_dots_list mids ender (dots statement)
+           (fun starter statement_dots_list mids ender ->
+             Ast0.Disj(starter,statement_dots_list,mids,ender))
+      | Ast0.Nest(starter,stmt_dots,ender,whn,multi) ->
+         let (starter_n,starter) = mcode starter in
+         let (stmt_dots_n,stmt_dots) = dots statement stmt_dots in
+         let (ender_n,ender) = mcode ender in
+         let (whn_n,whn) =
+           map_split_bind (whencode (dots statement) statement) whn in
+         (multibind [starter_n;stmt_dots_n;ender_n;whn_n],
+          Ast0.Nest(starter,stmt_dots,ender,whn,multi))
+      | Ast0.Exp(exp) ->
+         let (exp_n,exp) = expression exp in
+         (exp_n,Ast0.Exp(exp))
+      | Ast0.TopExp(exp) ->
+         let (exp_n,exp) = expression exp in
+         (exp_n,Ast0.TopExp(exp))
+      | Ast0.Ty(ty) ->
+         let (ty_n,ty) = typeC ty in
+         (ty_n,Ast0.Ty(ty))
+      | Ast0.TopInit(init) ->
+         let (init_n,init) = initialiser init in
+         (init_n,Ast0.TopInit(init))
+      | Ast0.Dots(d,whn) ->
+         let (d_n,d) = mcode d in
+         let (whn_n,whn) =
+           map_split_bind (whencode (dots statement) statement) whn in
+         (bind d_n whn_n, Ast0.Dots(d,whn))
+      | Ast0.Circles(d,whn) ->
+         let (d_n,d) = mcode d in
+         let (whn_n,whn) =
+           map_split_bind (whencode (dots statement) statement) whn in
+         (bind d_n whn_n, Ast0.Circles(d,whn))
+      | Ast0.Stars(d,whn) ->
+         let (d_n,d) = mcode d in
+         let (whn_n,whn) =
+           map_split_bind (whencode (dots statement) statement) whn in
+         (bind d_n whn_n, Ast0.Stars(d,whn))
+      | Ast0.Include(inc,name) ->
+         let (inc_n,inc) = mcode inc in
+         let (name_n,name) = mcode name in
+         (bind inc_n name_n, Ast0.Include(inc,name))
+      | Ast0.Undef(def,id) ->
+         let (def_n,def) = mcode def in
+         let (id_n,id) = ident id in
+         (multibind [def_n;id_n],Ast0.Undef(def,id))
+      | Ast0.Define(def,id,params,body) ->
+         let (def_n,def) = mcode def in
+         let (id_n,id) = ident id in
+         let (params_n,params) = define_parameters params in
+         let (body_n,body) = dots statement body in
+         (multibind [def_n;id_n;params_n;body_n],
+          Ast0.Define(def,id,params,body))
+      | Ast0.OptStm(re) ->
+         let (re_n,re) = statement re in (re_n,Ast0.OptStm(re))
+      | Ast0.UniqueStm(re) ->
+         let (re_n,re) = statement re in (re_n,Ast0.UniqueStm(re))) in
+  List.fold_left
+    (function (other_metas,stmt) ->
+      function
+         Ast0.StmtTag(stmt_meta) ->
+           (other_metas,Ast0.rewrap stmt (Ast0.AsStmt(stmt,stmt_meta)))
+       | x -> (x::other_metas,stmt))
+    ([],s) metas
+    
+  (* not parameterizable for now... *)
+and define_parameters p =
+  rewrap p
+    (match Ast0.unwrap p with
+      Ast0.NoParams -> (option_default,Ast0.NoParams)
+    | Ast0.DParams(lp,params,rp) ->
+       let (lp_n,lp) = mcode lp in
+       let (params_n,params) = dots define_param params in
+       let (rp_n,rp) = mcode rp in
+       (multibind [lp_n;params_n;rp_n], Ast0.DParams(lp,params,rp)))
+    
+and define_param p =
+  rewrap p
+    (match Ast0.unwrap p with
+      Ast0.DParam(id) -> let (n,id) = ident id in (n,Ast0.DParam(id))
+    | Ast0.DPComma(comma) ->
+       let (n,comma) = mcode comma in (n,Ast0.DPComma(comma))
+    | Ast0.DPdots(d) ->
+       let (n,d) = mcode d in (n,Ast0.DPdots(d))
+    | Ast0.DPcircles(c) ->
+       let (n,c) = mcode c in (n,Ast0.DPcircles(c))
+    | Ast0.OptDParam(dp) ->
+       let (n,dp) = define_param dp in (n,Ast0.OptDParam(dp))
+    | Ast0.UniqueDParam(dp) ->
+       let (n,dp) = define_param dp in (n,Ast0.UniqueDParam(dp)))
+    
+and fninfo = function
+    Ast0.FStorage(stg) ->
+      let (n,stg) = mcode stg in (n,Ast0.FStorage(stg))
+  | Ast0.FType(ty) -> let (n,ty) = typeC ty in (n,Ast0.FType(ty))
+  | Ast0.FInline(inline) ->
+      let (n,inline) = mcode inline in (n,Ast0.FInline(inline))
+  | Ast0.FAttr(init) ->
+      let (n,init) = mcode init in (n,Ast0.FAttr(init))
+       
+and whencode notfn alwaysfn = function
+    Ast0.WhenNot a -> let (n,a) = notfn a in (n,Ast0.WhenNot(a))
+  | Ast0.WhenAlways a -> let (n,a) = alwaysfn a in (n,Ast0.WhenAlways(a))
+  | Ast0.WhenModifier(x) -> (option_default,Ast0.WhenModifier(x))
+  | Ast0.WhenNotTrue(e) ->
+      let (n,e) = expression e in (n,Ast0.WhenNotTrue(e))
+  | Ast0.WhenNotFalse(e) ->
+      let (n,e) = expression e in (n,Ast0.WhenNotFalse(e))
+       
+and case_line c =
+  rewrap c
+    (match Ast0.unwrap c with
+      Ast0.Default(def,colon,code) ->
+       let (def_n,def) = mcode def in
+       let (colon_n,colon) = mcode colon in
+       let (code_n,code) = dots statement code in
+       (multibind [def_n;colon_n;code_n], Ast0.Default(def,colon,code))
+    | Ast0.Case(case,exp,colon,code) ->
+       let (case_n,case) = mcode case in
+       let (exp_n,exp) = expression exp in
+       let (colon_n,colon) = mcode colon in
+       let (code_n,code) = dots statement code in
+       (multibind [case_n;exp_n;colon_n;code_n],
+        Ast0.Case(case,exp,colon,code))
+    | Ast0.DisjCase(starter,case_lines,mids,ender) ->
+       do_disj starter case_lines mids ender case_line
+         (fun starter case_lines mids ender ->
+           Ast0.DisjCase(starter,case_lines,mids,ender))
+    | Ast0.OptCase(case) ->
+       let (n,case) = case_line case in (n,Ast0.OptCase(case)))
+    
+and top_level t =
+  rewrap t
+    (match Ast0.unwrap t with
+      Ast0.FILEINFO(old_file,new_file) ->
+       let (old_file_n,old_file) = mcode old_file in
+       let (new_file_n,new_file) = mcode new_file in
+       (bind old_file_n new_file_n,Ast0.FILEINFO(old_file,new_file))
+    | Ast0.NONDECL(statement_dots) ->
+       let (n,statement_dots) = statement statement_dots in
+       (n,Ast0.NONDECL(statement_dots))
+    | Ast0.CODE(stmt_dots) ->
+       let (stmt_dots_n,stmt_dots) = dots statement stmt_dots in
+       (stmt_dots_n, Ast0.CODE(stmt_dots))
+    | Ast0.TOPCODE(stmt_dots) ->
+       let (stmt_dots_n,stmt_dots) = dots statement stmt_dots in
+       (stmt_dots_n, Ast0.TOPCODE(stmt_dots))
+    | Ast0.ERRORWORDS(exps) ->
+       let (n,exps) = map_split_bind expression exps in
+       (n, Ast0.ERRORWORDS(exps))
+    | Ast0.OTHER(_) -> failwith "unexpected code")
+    
+let process t =
+  List.map
+    (function x ->
+      match top_level x with
+       ([],code) -> code
+      |        (l,_) ->
+         failwith
+           (Printf.sprintf
+              "rule starting on line %d contains unattached metavariables: %s"
+              (Ast0.get_line x)
+              (String.concat ", "
+                 (List.map
+                    (function nm ->
+                      let (r,n) = Ast0.unwrap_mcode nm in r^"."^n)
+                    (List.map Ast0.meta_pos_name l)))))
+    t
diff --git a/parsing_cocci/get_metas.mli b/parsing_cocci/get_metas.mli
new file mode 100644 (file)
index 0000000..08b9d26
--- /dev/null
@@ -0,0 +1,27 @@
+(*
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
+ * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
+ * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
+ * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
+ * This file is part of Coccinelle.
+ *
+ * Coccinelle is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, according to version 2 of the License.
+ *
+ * Coccinelle is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Coccinelle.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The authors reserve the right to distribute this or future versions of
+ * Coccinelle under other licenses.
+ *)
+
+
+val process : Ast0_cocci.rule -> Ast0_cocci.rule
index 7dbeb26..6f05ad0 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index de51c1f..936c31c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index e7e301c..11d2812 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -23,7 +25,7 @@
 
 
 (* create an index for each constructor *)
-(* current max is 155 *)
+(* current max is 157 *)
 
 (* doesn't really work - requires that identical terms with no token
 subterms (eg dots) not appear on the same line *)
@@ -92,6 +94,7 @@ let expression e =
   | Ast0.Constant(const) -> [18]
   | Ast0.FunCall(fn,lp,args,rp) -> [19]
   | Ast0.Assignment(left,op,right,simple) -> [20]
+  | Ast0.Sequence(left,op,right) -> [156]
   | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> [21]
   | Ast0.Postfix(exp,op) -> [22]
   | Ast0.Infix(exp,op) -> [23]
@@ -118,6 +121,7 @@ let expression e =
   | Ast0.Estars(dots,whencode) -> [40]
   | Ast0.OptExp(exp) -> [41]
   | Ast0.UniqueExp(exp) -> [42]
+  | Ast0.AsExpr _ -> failwith "not possible"
 
 let typeC t =
   match Ast0.unwrap t with
@@ -137,6 +141,7 @@ let typeC t =
   | Ast0.DisjType(_,type_list,_,_) -> [130]
   | Ast0.OptType(ty) -> [45]
   | Ast0.UniqueType(ty) -> [46]
+  | Ast0.AsType _ -> failwith "not possible"
 
 let declaration d =
   match Ast0.unwrap d with
@@ -146,12 +151,14 @@ let declaration d =
   | Ast0.Init(stg,ty,id,eq,exp,sem) -> [54]
   | Ast0.UnInit(stg,ty,id,sem) -> [55]
   | Ast0.MacroDecl(name,lp,args,rp,sem) -> [137]
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> [157]
   | Ast0.TyDecl(ty,sem) -> [116]
   | Ast0.Typedef(stg,ty,id,sem) -> [143]
   | Ast0.DisjDecl(_,decls,_,_) -> [97] (* added after *)
   | Ast0.Ddots(dots,whencode) -> [133]
   | Ast0.OptDecl(decl) -> [56]
   | Ast0.UniqueDecl(decl) -> [57]
+  | Ast0.AsDecl _ -> failwith "not possible"
 
 let initialiser i =
   match Ast0.unwrap i with
@@ -165,6 +172,7 @@ let initialiser i =
   | Ast0.Idots(d,whencode) -> [109]
   | Ast0.OptIni(id) -> [110]
   | Ast0.UniqueIni(id) -> [111]
+  | Ast0.AsInit _ -> failwith "not possible"
 
 let parameterTypeDef p =
   match Ast0.unwrap p with
@@ -213,6 +221,7 @@ let statement s =
   | Ast0.Define(def,id,params,body) -> [119]
   | Ast0.OptStm(re) -> [87]
   | Ast0.UniqueStm(re) -> [88]
+  | Ast0.AsStmt _ -> failwith "not possible"
 
 let case_line c =
   match Ast0.unwrap c with
index 82ecb1e..ba2c6c2 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 74854aa..5991a99 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -143,7 +145,8 @@ let create_root_token_table minus =
          | Ast0.IsoWhenTag(_) -> failwith "only within iso phase"
          | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase"
          | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase"
-         | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase"
+         | Ast0.MetaPosTag(p) -> failwith "not in plus code"
+         | Ast0.HiddenVarTag(p) -> failwith "only within iso phase"
        in
        Hashtbl.add root_token_table key tokens)
     CN.minus_table;
@@ -367,7 +370,8 @@ let call_collect_minus context_nodes :
       | Ast0.IsoWhenTag(_) -> failwith "only within iso phase"
       | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase"
       | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase"
-      | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase")
+      | Ast0.MetaPosTag(p) -> failwith "not in plus code"
+      | Ast0.HiddenVarTag(p) -> failwith "only within iso phase")
     context_nodes
 
 (* result of collecting the join points should be sorted in nondecreasing
@@ -443,7 +447,7 @@ let mk_paramdots x = Ast.ParamDotsTag (Ast0toast.parameter_list x)
 let mk_stmtdots x  = Ast.StmtDotsTag (Ast0toast.statement_dots x)
 let mk_decldots x  = Ast.DeclDotsTag (Ast0toast.declaration_dots x)
 let mk_casedots x  = failwith "+ case lines not supported"
-let mk_typeC x     = Ast.FullTypeTag (Ast0toast.typeC x)
+let mk_typeC x     = Ast.FullTypeTag (Ast0toast.typeC false x)
 let mk_init x      = Ast.InitTag (Ast0toast.initialiser x)
 let mk_param x     = Ast.ParamTag (Ast0toast.parameterTypeDef x)
 
@@ -604,7 +608,8 @@ let call_collect_plus context_nodes :
       | Ast0.IsoWhenTag(_) -> failwith "only within iso phase"
       | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase"
       | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase"
-      | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase")
+      | Ast0.MetaPosTag(p) -> failwith "not visible here"
+      | Ast0.HiddenVarTag(_) -> failwith "only within iso phase")
     context_nodes
 
 (* The plus fragments are converted to a list of lists of lists.
index 46acab1..ac0e0f6 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 8780622..d46833a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -28,7 +30,7 @@ module Ast0 = Ast0_cocci
 module Ast = Ast_cocci
 
 (* Detects where position variables can be present in the match of an
-isomorpshims.  This is allowed if all elements of an isomorphism have only
+isomorphism.  This is allowed if all elements of an isomorphism have only
 one token or if we can somehow match up equal tokens of all of the
 isomorphic variants. *)
 
@@ -51,7 +53,7 @@ let sequence_tokens =
 
 [[tokens1;tokens2;tokens3];[tokens4;tokens5;tokens6];[tokens7;tokens8]]
 
-If all of the lists tokens contain only one element, we are done.
+If all of the lists of tokens contain only one element, we are done.
 
 Otherwise, we focus on tokens1.  For each of its elements, if they are
 present in all of the others, then a position is assigned, and if not then
@@ -65,37 +67,50 @@ let get_p _ =
   let c = !pctr in
   pctr := c + 1;
   let name = ("",Printf.sprintf "p%d" c) in
-  [Ast0.MetaPos(Ast0.make_mcode name,[],Ast.PER)]
+  (* pos var just gives a name we can look up, used for historical reasons *)
+  Ast0.HiddenVarTag
+    ([Ast0.MetaPosTag(Ast0.MetaPos(Ast0.make_mcode name,[],Ast.PER))])
 
 let process_info l =
-   let rec loop = function
+   let rec loop previously_used = function
        [] -> ()
      | ((f::r)::xs) as a ->
-        if List.for_all (List.for_all (function e -> List.length e = 1)) a
-        then
-          let p = get_p() in
-          List.iter (List.iter (List.iter (function (_,pos) -> pos := p))) a
-        else
-          let all = r @ List.concat xs in
-          let rec find_first_available a = function
-              [] -> raise Not_found
-            | (str,pos)::xs ->
-                if str = a && !pos = []
-                then pos
-                else find_first_available a xs in
-          List.iter
-            (function (str,pos) ->
-              match !pos with
-                [] ->
-                  (try
-                    let entries = List.map (find_first_available str) all in
-                    let p = get_p() in
-                    pos := p;
-                    List.iter (function pos -> pos := p) entries
-                  with Not_found -> ())
-              | _ -> (* already have a variable *) ())
-            f;
-          loop xs
+        let safe_add p pos =
+          (* don't add pos var where a pos var is already present *)
+          if Common.inter_set previously_used pos = [] then p::pos else pos in
+        let p =
+          if List.for_all (List.for_all (function e -> List.length e = 1)) a
+          then
+            let p = get_p() in
+             List.iter
+              (List.iter
+                 (List.iter (function (_,pos) -> pos := safe_add p !pos)))
+              a;
+            [p]
+          else
+            let all = r @ List.concat xs in
+            let rec find_first_available a = function
+                [] -> raise Not_found
+              | (str,pos)::xs ->
+                  if str = a && Common.inter_set previously_used !pos = []
+                  then pos
+                  else find_first_available a xs in
+            List.fold_left
+              (function prev ->
+                function (str,pos) ->
+                  if Common.inter_set previously_used !pos = []
+                  then
+                    try
+                      let entries = List.map (find_first_available str) all in
+                      let p = get_p() in
+                      pos := p::!pos;
+                      List.iter (function pos -> pos := p :: !pos) entries;
+                      p::prev
+                    with Not_found -> prev
+                  (* otherwise already annotated *)
+                  else prev)
+              [] f in
+        loop (p@previously_used) xs
      | _ -> failwith "bad iso" in
    loop l
 
@@ -104,4 +119,4 @@ let process_info l =
 let process (metavars,alts,name) =
   let toks =
     List.map (List.map sequence_tokens.VT0.combiner_rec_anything) alts in
-  process_info toks
+  process_info [] toks
index 7826ecb..6560be5 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 0aec0b1..2b53341 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -127,7 +129,6 @@ type reason =
   | Braces of Ast0.statement
   | Nest of Ast0.statement
   | Position of Ast.meta_name
-  | Multiposition
   | TypeMatch of reason list
 
 let rec interpret_reason name line reason printer =
@@ -169,9 +170,7 @@ let rec interpret_reason name line reason printer =
   | Position(rule,name) ->
       Printf.printf "position variable %s.%s conflicts with an isomorphism\n"
        rule name
-  | Multiposition _ ->
-      Printf.printf "multiple position variables conflict with an isomorphism\n"
-  | TypeMatch reason_list ->
+   | TypeMatch reason_list ->
       List.iter (function r -> interpret_reason name line r printer)
        reason_list
   | _ -> failwith "not possible"
@@ -325,16 +324,16 @@ let match_maker checks_needed context_required whencode_allowed =
     if checks_needed
     then
       match Ast0.get_pos cmc with
-       [(Ast0.MetaPos (name,_,_)) as x] ->
-         (match Ast0.get_pos pmc with
-           [Ast0.MetaPos (name1,_,_)] ->
-             add_binding name1 (Ast0.MetaPosTag x) binding
-         | [] ->
-             let (rule,name) = Ast0.unwrap_mcode name in
-             Fail (Position(rule,name))
-         | _ -> Fail Multiposition)
-      | [] -> OK binding
-      | _ -> Fail Multiposition
+       [] -> OK binding (* no hidden vars in smpl code, so nothing to do *)
+      |        ((a::_) as hidden_code) ->
+         let hidden_pattern =
+           List.filter (function Ast0.HiddenVarTag _ -> true | _ -> false)
+             (Ast0.get_pos pmc) in
+         (match hidden_pattern with
+           [Ast0.HiddenVarTag([Ast0.MetaPosTag(Ast0.MetaPos (name1,_,_))])] ->
+             add_binding name1 (Ast0.HiddenVarTag(hidden_code)) binding
+         | [] -> Fail(Position(Ast0.unwrap_mcode(Ast0.meta_pos_name a)))
+         | _ -> failwith "badly compiled iso - multiple hidden variable")
     else OK binding in
 
   let match_dots matcher is_list_matcher do_list_match d1 d2 =
@@ -659,6 +658,14 @@ let match_maker checks_needed context_required whencode_allowed =
                   [check_mcode opa opb; match_expr lefta leftb;
                     match_expr righta rightb]
               else return false
+         | (Ast0.Sequence(lefta,opa,righta),
+            Ast0.Sequence(leftb,opb,rightb)) ->
+              if mcode_equal opa opb
+              then
+                conjunct_many_bindings
+                  [check_mcode opa opb; match_expr lefta leftb;
+                    match_expr righta rightb]
+              else return false
          | (Ast0.CondExpr(exp1a,lp1,exp2a,rp1,exp3a),
             Ast0.CondExpr(exp1b,lp,exp2b,rp,exp3b)) ->
               conjunct_many_bindings
@@ -744,7 +751,8 @@ let match_maker checks_needed context_required whencode_allowed =
          | (Ast0.Estars(_,Some _),_) ->
              failwith "whencode not allowed in a pattern1"
          | (Ast0.OptExp(expa),Ast0.OptExp(expb))
-         | (Ast0.UniqueExp(expa),Ast0.UniqueExp(expb)) -> match_expr expa expb
+         | (Ast0.UniqueExp(expa),Ast0.UniqueExp(expb)) ->
+             match_expr expa expb
          | (_,Ast0.OptExp(expb))
          | (_,Ast0.UniqueExp(expb)) -> match_expr pattern expb
          | _ -> return false
@@ -881,6 +889,16 @@ let match_maker checks_needed context_required whencode_allowed =
                   check_mcode sc1 sc;
                   match_dots match_expr is_elist_matcher do_elist_match
                     argsa argsb]
+         | (Ast0.MacroDeclInit(namea,lp1,argsa,rp1,eq1,ini1,sc1),
+            Ast0.MacroDeclInit(nameb,lp,argsb,rp,eq,ini,sc)) ->
+              conjunct_many_bindings
+                [match_ident namea nameb;
+                  check_mcode lp1 lp; check_mcode rp1 rp;
+                  check_mcode eq1 eq;
+                  check_mcode sc1 sc;
+                  match_dots match_expr is_elist_matcher do_elist_match
+                    argsa argsb;
+                  match_init ini1 ini]
          | (Ast0.TyDecl(tya,sc1),Ast0.TyDecl(tyb,sc)) ->
              conjunct_bindings (check_mcode sc1 sc) (match_typeC tya tyb)
          | (Ast0.Typedef(stga,tya,ida,sc1),Ast0.Typedef(stgb,tyb,idb,sc)) ->
@@ -1537,19 +1555,24 @@ let lookup name bindings mv_bindings =
    isomorphism *)
 let instantiate bindings mv_bindings =
   let mcode x =
-    let pos_names =
-      List.map (function Ast0.MetaPos(name,_,_) -> name) (Ast0.get_pos x) in
+    let (hidden,others) =
+      List.partition
+       (function Ast0.HiddenVarTag _ -> true | _ -> false)
+       (Ast0.get_pos x) in
     let new_names =
-      List.fold_left
-       (function prev ->
-         function name ->
-           try
-             match lookup name bindings mv_bindings with
-               Common.Left(Ast0.MetaPosTag(id)) -> id::prev
-             | _ -> failwith "not possible"
-           with Not_found -> prev)
-       [] pos_names in
-    Ast0.set_pos new_names x in
+      match hidden with
+       [Ast0.HiddenVarTag([Ast0.MetaPosTag(Ast0.MetaPos (name,_,_))])] ->
+         (try
+         (* not at all sure that this is good enough *)
+           match lookup name bindings mv_bindings with
+             Common.Left(Ast0.HiddenVarTag(ids)) -> ids
+           | _ -> failwith "not possible"
+         with Not_found ->
+            (*can't fail because checks_needed could be false?*)
+           [])
+      |        [] -> [] (* no hidden metavars allowed *)
+      | _ -> failwith "badly compiled mcode" in
+    Ast0.set_pos (new_names@others) x in
   let donothing r k e = k e in
 
   (* cases where metavariables can occur *)
@@ -2598,6 +2621,7 @@ let rewrap_anything = function
   | Ast0.IsoWhenTag(_) | Ast0.IsoWhenTTag(_) | Ast0.IsoWhenFTag(_) ->
       failwith "only for isos within iso phase"
   | Ast0.MetaPosTag(p) -> Ast0.MetaPosTag(p)
+  | Ast0.HiddenVarTag(p) -> Ast0.HiddenVarTag(p) (* not sure it is possible *)
 
 (* --------------------------------------------------------------------- *)
 
index 964662e..b82eeba 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index b87da3e..f8ccb0f 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 36bfcf5..d94c7d8 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -554,7 +556,8 @@ rule token = parse
   | "@"  { pass_zero();
           if !Data.in_rule_name or not !current_line_started
           then (start_line true; TArob)
-          else (check_minus_context_linetype "@"; TPArob) }
+          else (check_minus_context_linetype "@";
+                TPArob (get_current_line_type lexbuf)) }
 
   | "=~"  { start_line true; TTildeEq (get_current_line_type lexbuf) }
   | "!~" { start_line true; TTildeExclEq (get_current_line_type lexbuf) }
index 921e7ac..d471488 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index af5764b..8a990de 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 71c25f0..96d35e4 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index def844e..94c2dc9 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 2544269..6f300f3 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -241,13 +243,6 @@ let check_meta_tyopt type_irrelevant = function
       raise
        (Semantic_cocci.Semantic
           "can't inherit the freshness of an identifier")
-  | Ast.MetaListlenDecl((rule,name)) ->
-      (match lookup rule name with
-       Ast.MetaListlenDecl(_) -> ()
-      | _ ->
-         raise
-           (Semantic_cocci.Semantic
-              ("incompatible inheritance declaration "^name)))
   | Ast.MetaTypeDecl(Ast.NONE,(rule,name)) ->
       (match lookup rule name with
        Ast.MetaTypeDecl(_,_) -> ()
@@ -269,6 +264,13 @@ let check_meta_tyopt type_irrelevant = function
          raise
            (Semantic_cocci.Semantic
               ("incompatible inheritance declaration "^name)))
+  | Ast.MetaListlenDecl((rule,name)) ->
+      (match lookup rule name with
+       Ast.MetaListlenDecl(_) -> ()
+      | _ ->
+         raise
+           (Semantic_cocci.Semantic
+              ("incompatible inheritance declaration "^name)))
   | Ast.MetaParamDecl(Ast.NONE,(rule,name)) ->
       (match lookup rule name with
        Ast.MetaParamDecl(_,_) -> ()
@@ -283,6 +285,13 @@ let check_meta_tyopt type_irrelevant = function
          raise
            (Semantic_cocci.Semantic
               ("incompatible inheritance declaration "^name)))
+  | Ast.MetaConstDecl(Ast.NONE,(rule,name),ty) ->
+      (match lookup rule name with
+       Ast.MetaConstDecl(_,_,ty1) when type_irrelevant or ty = ty1 -> ()
+      | _ ->
+         raise
+           (Semantic_cocci.Semantic
+              ("incompatible inheritance declaration "^name)))
   | Ast.MetaErrDecl(Ast.NONE,(rule,name)) ->
       (match lookup rule name with
        Ast.MetaErrDecl(_,_) -> ()
@@ -319,6 +328,27 @@ let check_meta_tyopt type_irrelevant = function
          raise
            (Semantic_cocci.Semantic
               ("incompatible inheritance declaration "^name)))
+  | Ast.MetaDeclDecl(Ast.NONE,(rule,name)) ->
+      (match lookup rule name with
+       Ast.MetaDeclDecl(_,_) -> ()
+      | _ ->
+         raise
+           (Semantic_cocci.Semantic
+              ("incompatible inheritance declaration "^name)))
+  | Ast.MetaFieldDecl(Ast.NONE,(rule,name)) ->
+      (match lookup rule name with
+       Ast.MetaFieldDecl(_,_) -> ()
+      | _ ->
+         raise
+           (Semantic_cocci.Semantic
+              ("incompatible inheritance declaration "^name)))
+  | Ast.MetaFieldListDecl(Ast.NONE,(rule,name),len_name) ->
+      (match lookup rule name with
+       Ast.MetaFieldListDecl(_,_,_) -> ()
+      | _ ->
+         raise
+           (Semantic_cocci.Semantic
+              ("incompatible inheritance declaration "^name)))
   | Ast.MetaStmDecl(Ast.NONE,(rule,name)) ->
       (match lookup rule name with
        Ast.MetaStmDecl(_,_) -> ()
@@ -347,13 +377,6 @@ let check_meta_tyopt type_irrelevant = function
          raise
            (Semantic_cocci.Semantic
               ("incompatible inheritance declaration "^name)))
-  | Ast.MetaConstDecl(Ast.NONE,(rule,name),ty) ->
-      (match lookup rule name with
-       Ast.MetaConstDecl(_,_,ty1) when type_irrelevant or ty = ty1 -> ()
-      | _ ->
-         raise
-           (Semantic_cocci.Semantic
-              ("incompatible inheritance declaration "^name)))
   | Ast.MetaPosDecl(Ast.NONE,(rule,name)) ->
       (match lookup rule name with
        Ast.MetaPosDecl(_,_) ->
index 5359bbe..bc0af9b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -220,7 +222,7 @@ let token2c (tok,_) =
   | PC.TMPtVirg -> ";"
   | PC.TArobArob -> "@@"
   | PC.TArob -> "@"
-  | PC.TPArob -> "P@"
+  | PC.TPArob clt -> "P@"
   | PC.TScript -> "script"
   | PC.TInitialize -> "initialize"
   | PC.TFinalize -> "finalize"
@@ -436,7 +438,7 @@ let get_clt (tok,_) =
   | PC.TPtrOp(clt)
 
   | PC.TEq(clt) | PC.TAssign(_,clt) | PC.TDot(clt) | PC.TComma(clt)
-  | PC.TPtVirg(clt)
+  | PC.TPArob(clt) | PC.TPtVirg(clt)
 
   | PC.TOPar0(clt) | PC.TMid0(clt) | PC.TCPar0(clt)
   | PC.TOEllipsis(clt) | PC.TCEllipsis(clt)
@@ -593,6 +595,7 @@ let update_clt (tok,x) clt =
   | PC.TAssign(s,_) -> (PC.TAssign(s,clt),x)
   | PC.TDot(_) -> (PC.TDot(clt),x)
   | PC.TComma(_) -> (PC.TComma(clt),x)
+  | PC.TPArob(_) -> (PC.TPArob(clt),x)
   | PC.TPtVirg(_) -> (PC.TPtVirg(clt),x)
 
   | PC.TLineEnd(_) -> (PC.TLineEnd(clt),x)
@@ -701,7 +704,7 @@ let split_token ((tok,_) as t) =
   | PC.TMetaDeclarer(_,_,_,clt) | PC.TMetaIterator(_,_,_,clt) -> split t clt
   | PC.TMPtVirg | PC.TArob | PC.TArobArob | PC.TScript
   | PC.TInitialize | PC.TFinalize -> ([t],[t])
-  | PC.TPArob | PC.TMetaPos(_,_,_,_) -> ([t],[])
+  | PC.TPArob clt | PC.TMetaPos(_,_,_,clt) -> split t clt
 
   | PC.TFunDecl(clt)
   | PC.TWhen(clt) | PC.TWhenTrue(clt) | PC.TWhenFalse(clt)
@@ -1018,7 +1021,7 @@ let token2line (tok,_) =
   | PC.TIncludeL(_,clt) | PC.TIncludeNL(_,clt)
 
   | PC.TEq(clt) | PC.TAssign(_,clt) | PC.TDot(clt) | PC.TComma(clt)
-  | PC.TPtVirg(clt) ->
+  | PC.TPArob(clt) | PC.TPtVirg(clt) ->
       let (_,line,_,_,_,_,_,_) = clt in Some line
 
   | _ -> None
@@ -1051,8 +1054,8 @@ and find_line_end inwhen line clt q = function
       (PC.TExists,a) :: (find_line_end inwhen line clt q xs)
   | ((PC.TComma(clt),a) as x)::xs when token2line x = line ->
       (PC.TComma(clt),a) :: (find_line_end inwhen line clt q xs)
-  | ((PC.TPArob,a) as x)::xs -> (* no line #, just assume on the same line *)
-      x :: (find_line_end inwhen line clt q xs)
+  | ((PC.TPArob(clt),a) as x)::xs when token2line x = line ->
+      (PC.TPArob(clt),a) :: (find_line_end inwhen line clt q xs)
   | x::xs when token2line x = line -> x :: (find_line_end inwhen line clt q xs)
   | xs -> (PC.TLineEnd(clt),q)::(insert_line_end xs)
 
@@ -1428,19 +1431,75 @@ let prepare_tokens tokens =
 let prepare_mv_tokens tokens =
   detect_types false (detect_attr tokens)
 
-let rec consume_minus_positions = function
+let unminus (d,x1,x2,x3,x4,x5,x6,x7) = (* for hidden variables *)
+  match d with
+    D.MINUS | D.OPTMINUS | D.UNIQUEMINUS -> (D.CONTEXT,x1,x2,x3,x4,x5,x6,x7)
+  | D.PLUS -> failwith "unexpected plus code"
+  | D.PLUSPLUS -> failwith "unexpected plus code"
+  | D.CONTEXT | D.UNIQUE | D.OPT -> (D.CONTEXT,x1,x2,x3,x4,x5,x6,x7)
+
+let process_minus_positions x name clt meta =
+  let (arity,ln,lln,offset,col,strbef,straft,pos) = get_clt x in
+  let name = Parse_aux.clt2mcode name (unminus clt) in
+  update_clt x (arity,ln,lln,offset,col,strbef,straft,meta name::pos)
+
+(* first attach positions, then the others, so that positions can refer to
+the larger term represented by the preceding metavariable *)
+let rec consume_minus_positions toks =
+  let rec loop_pos = function
+      [] -> []
+    | ((PC.TOPar0(_),_) as x)::xs | ((PC.TCPar0(_),_) as x)::xs
+    | ((PC.TMid0(_),_) as x)::xs -> x::loop_pos xs
+    | x::(PC.TPArob _,_)::(PC.TMetaPos(name,constraints,per,clt),_)::xs ->
+       let x =
+         process_minus_positions x name clt
+           (function name ->
+             Ast0.MetaPosTag(Ast0.MetaPos(name,constraints,per))) in
+       (loop_pos (x::xs))
+    | x::xs -> x::loop_pos xs in
+  let rec loop_other = function
+      [] -> []
+    | ((PC.TOPar0(_),_) as x)::xs | ((PC.TCPar0(_),_) as x)::xs
+    | ((PC.TMid0(_),_) as x)::xs -> x::loop_other xs
+    | x::(PC.TPArob _,_)::(PC.TMetaExp(name,constraints,pure,ty,clt),_)::xs ->
+       let x =
+         process_minus_positions x name clt
+           (function name ->
+             Ast0.ExprTag
+               (Ast0.wrap
+                  (Ast0.MetaExpr(name,constraints,ty,Ast.ANY,pure)))) in
+       (loop_other (x::xs))
+    | x::(PC.TPArob _,_)::(PC.TMetaInit(name,pure,clt),_)::xs ->
+       let x =
+         process_minus_positions x name clt
+           (function name ->
+             Ast0.InitTag(Ast0.wrap(Ast0.MetaInit(name,pure)))) in
+       (loop_other (x::xs))
+    | x::(PC.TPArob _,_)::(PC.TMetaType(name,pure,clt),_)::xs ->
+       let x =
+         process_minus_positions x name clt
+           (function name ->
+             Ast0.TypeCTag(Ast0.wrap(Ast0.MetaType(name,pure)))) in
+       (loop_other (x::xs))
+    | x::(PC.TPArob _,_)::(PC.TMetaDecl(name,pure,clt),_)::xs ->
+       let x =
+         process_minus_positions x name clt
+           (function name ->
+             Ast0.DeclTag(Ast0.wrap(Ast0.MetaDecl(name,pure)))) in
+       (loop_other (x::xs))
+    | x::(PC.TPArob _,_)::(PC.TMetaStm(name,pure,clt),_)::xs ->
+       let x =
+         process_minus_positions x name clt
+           (function name ->
+             Ast0.StmtTag(Ast0.wrap(Ast0.MetaStmt(name,pure)))) in
+       (loop_other (x::xs))
+    | x::xs -> x::loop_other xs in
+  loop_other(loop_pos toks)
+    
+let rec consume_plus_positions = function
     [] -> []
-  | ((PC.TOPar0(_),_) as x)::xs | ((PC.TCPar0(_),_) as x)::xs
-  | ((PC.TMid0(_),_) as x)::xs -> x::consume_minus_positions xs
-  | x::(PC.TPArob,_)::(PC.TMetaPos(name,constraints,per,clt),_)::xs ->
-      let (arity,ln,lln,offset,col,strbef,straft,pos) = get_clt x in
-      let name = Parse_aux.clt2mcode name clt in
-      let x =
-       update_clt x
-         (arity,ln,lln,offset,col,strbef,straft,
-          (Ast0.MetaPos(name,constraints,per)::pos)) in
-      (consume_minus_positions (x::xs))
-  | x::xs -> x::consume_minus_positions xs
+  | (PC.TPArob _,_)::x::xs -> consume_plus_positions xs
+  | x::xs -> x::consume_plus_positions xs
 
 let any_modif rule =
   let mcode x =
@@ -1572,7 +1631,7 @@ let parse_iso file =
            let tokens = prepare_tokens (start@tokens) in
             (*
               print_tokens "iso tokens" tokens;
-           Ã¥*)
+           *)
            let entry = parse_one "iso main" PC.iso_main file tokens in
            let entry = List.map (List.map Test_exps.process_anything) entry in
            if more
@@ -1588,6 +1647,7 @@ let parse_iso file =
            else [(iso_metavars,entry,rule_name)] in
          loop starts_with_name start
       | (false,_) -> [] in
+    List.iter Iso_compile.process res;
     res)
 
 let parse_iso_files existing_isos iso_files extra_path =
@@ -1714,6 +1774,7 @@ let parse file =
            *)
 
            let minus_tokens = consume_minus_positions minus_tokens in
+           let plus_tokens = consume_plus_positions plus_tokens in
            let minus_tokens = prepare_tokens minus_tokens in
            let plus_tokens = prepare_tokens plus_tokens in
 
@@ -1996,7 +2057,6 @@ let process file isofile verbose =
                   List.filter
                     (function (_,_,nm) -> not (List.mem nm dropiso))
                     chosen_isos in
-              List.iter Iso_compile.process chosen_isos;
               let dropped_isos =
                 match reserved_names with
                   "all"::others ->
@@ -2047,6 +2107,8 @@ let process file isofile verbose =
                 if !Flag.sgrep_mode2 then minus
                 else Single_statement.single_statement minus in
               let minus = Simple_assignments.simple_assignments minus in
+              (* has to be last, introduced AsExpr, etc *)
+              let minus = Get_metas.process minus in
               let minus_ast =
                 Ast0toast.ast0toast rule_name dependencies dropped_isos
                   exists minus is_exp ruletype in
index 294f781..3d29aa9 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 134a91c..06331bc 100644 (file)
@@ -1,5 +1,7 @@
 /*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 53cc662..4d26105 100644 (file)
@@ -2,155 +2,155 @@ exception Error
 
 type token = 
   | Tvolatile of (
-# 120 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8 "parser_cocci_menhir.ml"
 )
   | Tvoid of (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13 "parser_cocci_menhir.ml"
 )
   | Tunsigned of (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 18 "parser_cocci_menhir.ml"
 )
   | Tunion of (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 23 "parser_cocci_menhir.ml"
 )
   | Ttypedef of (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 28 "parser_cocci_menhir.ml"
 )
   | Tstruct of (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 33 "parser_cocci_menhir.ml"
 )
   | Tstatic of (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 38 "parser_cocci_menhir.ml"
 )
   | Tssize_t of (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43 "parser_cocci_menhir.ml"
 )
   | Tsize_t of (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 48 "parser_cocci_menhir.ml"
 )
   | Tsigned of (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 53 "parser_cocci_menhir.ml"
 )
   | Tshort of (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 58 "parser_cocci_menhir.ml"
 )
   | Tregister of (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 63 "parser_cocci_menhir.ml"
 )
   | Tptrdiff_t of (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 68 "parser_cocci_menhir.ml"
 )
   | Tlong of (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 73 "parser_cocci_menhir.ml"
 )
   | Tlist
   | Tint of (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 79 "parser_cocci_menhir.ml"
 )
   | Tinline of (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 84 "parser_cocci_menhir.ml"
 )
   | Tfloat of (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 89 "parser_cocci_menhir.ml"
 )
   | Textern of (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 94 "parser_cocci_menhir.ml"
 )
   | Tenum of (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 99 "parser_cocci_menhir.ml"
 )
   | Tdouble of (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 104 "parser_cocci_menhir.ml"
 )
   | Tconst of (
-# 120 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
 # 109 "parser_cocci_menhir.ml"
 )
   | Tchar of (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 114 "parser_cocci_menhir.ml"
 )
   | Tauto of (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 119 "parser_cocci_menhir.ml"
 )
   | Tattr of (
-# 121 "parser_cocci_menhir.mly"
+# 123 "parser_cocci_menhir.mly"
       (string * Data.clt)
 # 124 "parser_cocci_menhir.ml"
 )
   | TXor of (
-# 161 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
 # 129 "parser_cocci_menhir.ml"
 )
   | TWords
   | TWhy0
   | TWhy of (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 136 "parser_cocci_menhir.ml"
 )
   | TWhile of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 141 "parser_cocci_menhir.ml"
 )
   | TWhenTrue of (
-# 143 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 146 "parser_cocci_menhir.ml"
 )
   | TWhenFalse of (
-# 143 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 151 "parser_cocci_menhir.ml"
 )
   | TWhen of (
-# 143 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 156 "parser_cocci_menhir.ml"
 )
@@ -158,338 +158,342 @@ type token =
   | TUsing
   | TUnderscore
   | TUndef of (
-# 150 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
 # 164 "parser_cocci_menhir.ml"
 )
   | TTypedef
   | TTypeId of (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 170 "parser_cocci_menhir.ml"
 )
   | TType
   | TTildeExclEq of (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 176 "parser_cocci_menhir.ml"
 )
   | TTildeEq of (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 181 "parser_cocci_menhir.ml"
 )
   | TTilde of (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 186 "parser_cocci_menhir.ml"
 )
   | TSymbol
   | TSymId of (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 192 "parser_cocci_menhir.ml"
 )
   | TSwitch of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 197 "parser_cocci_menhir.ml"
 )
   | TSub of (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 202 "parser_cocci_menhir.ml"
 )
   | TString of (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 207 "parser_cocci_menhir.ml"
 )
   | TStrict of (
-# 143 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 212 "parser_cocci_menhir.ml"
 )
   | TStatement
   | TSizeof of (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 218 "parser_cocci_menhir.ml"
 )
   | TShROp of (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 223 "parser_cocci_menhir.ml"
 )
   | TShLOp of (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 228 "parser_cocci_menhir.ml"
 )
   | TScriptData of (
-# 140 "parser_cocci_menhir.mly"
+# 143 "parser_cocci_menhir.mly"
        (string)
 # 233 "parser_cocci_menhir.ml"
 )
   | TScript
   | TRuleName of (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 239 "parser_cocci_menhir.ml"
 )
   | TRightIso
   | TReturn of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 245 "parser_cocci_menhir.ml"
 )
   | TPure
   | TPtrOp of (
-# 173 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
 # 251 "parser_cocci_menhir.ml"
 )
   | TPtVirg of (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 256 "parser_cocci_menhir.ml"
 )
   | TPragma of (
-# 126 "parser_cocci_menhir.mly"
+# 128 "parser_cocci_menhir.mly"
        (Ast_cocci.added_string * Data.clt)
 # 261 "parser_cocci_menhir.ml"
 )
   | TPosition
   | TPosAny
   | TPlusFile of (
-# 152 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 268 "parser_cocci_menhir.ml"
 )
   | TPlus0
   | TPlus of (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 274 "parser_cocci_menhir.ml"
 )
   | TPathIsoFile of (
-# 148 "parser_cocci_menhir.mly"
+# 151 "parser_cocci_menhir.mly"
        (string)
 # 279 "parser_cocci_menhir.ml"
 )
   | TParameter
   | TPOEllipsis of (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 285 "parser_cocci_menhir.ml"
 )
   | TPCEllipsis of (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 290 "parser_cocci_menhir.ml"
 )
-  | TPArob
+  | TPArob of (
+# 142 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 295 "parser_cocci_menhir.ml"
+)
   | TOrLog of (
-# 158 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
-# 296 "parser_cocci_menhir.ml"
+# 300 "parser_cocci_menhir.ml"
 )
   | TOr of (
-# 160 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
-# 301 "parser_cocci_menhir.ml"
+# 305 "parser_cocci_menhir.ml"
 )
   | TOn
   | TOPar0 of (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 307 "parser_cocci_menhir.ml"
+# 311 "parser_cocci_menhir.ml"
 )
   | TOPar of (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 312 "parser_cocci_menhir.ml"
+# 316 "parser_cocci_menhir.ml"
 )
   | TOInit of (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 317 "parser_cocci_menhir.ml"
+# 321 "parser_cocci_menhir.ml"
 )
   | TOEllipsis of (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 322 "parser_cocci_menhir.ml"
+# 326 "parser_cocci_menhir.ml"
 )
   | TOCro of (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 327 "parser_cocci_menhir.ml"
+# 331 "parser_cocci_menhir.ml"
 )
   | TOBrace of (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 332 "parser_cocci_menhir.ml"
+# 336 "parser_cocci_menhir.ml"
 )
   | TNothing
   | TNotEq of (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 338 "parser_cocci_menhir.ml"
+# 342 "parser_cocci_menhir.ml"
 )
   | TNever
   | TName
   | TMul of (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 345 "parser_cocci_menhir.ml"
+# 349 "parser_cocci_menhir.ml"
 )
   | TMinusFile of (
-# 152 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 350 "parser_cocci_menhir.ml"
+# 354 "parser_cocci_menhir.ml"
 )
   | TMinus of (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 355 "parser_cocci_menhir.ml"
+# 359 "parser_cocci_menhir.ml"
 )
   | TMid0 of (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 360 "parser_cocci_menhir.ml"
+# 364 "parser_cocci_menhir.ml"
 )
   | TMetavariable
   | TMetaType of (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 366 "parser_cocci_menhir.ml"
+# 370 "parser_cocci_menhir.ml"
 )
   | TMetaStmList of (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 371 "parser_cocci_menhir.ml"
+# 375 "parser_cocci_menhir.ml"
 )
   | TMetaStm of (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 376 "parser_cocci_menhir.ml"
+# 380 "parser_cocci_menhir.ml"
 )
   | TMetaPos of (
-# 137 "parser_cocci_menhir.mly"
+# 139 "parser_cocci_menhir.mly"
        (Parse_aux.pos_info)
-# 381 "parser_cocci_menhir.ml"
+# 385 "parser_cocci_menhir.ml"
 )
   | TMetaParamList of (
-# 134 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 386 "parser_cocci_menhir.ml"
+# 390 "parser_cocci_menhir.ml"
 )
   | TMetaParam of (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 391 "parser_cocci_menhir.ml"
+# 395 "parser_cocci_menhir.ml"
 )
   | TMetaLocalIdExp of (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 396 "parser_cocci_menhir.ml"
+# 400 "parser_cocci_menhir.ml"
 )
   | TMetaLocalFunc of (
-# 129 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 401 "parser_cocci_menhir.ml"
+# 405 "parser_cocci_menhir.ml"
 )
   | TMetaIterator of (
-# 130 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 406 "parser_cocci_menhir.ml"
+# 410 "parser_cocci_menhir.ml"
 )
   | TMetaInitList of (
-# 134 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 411 "parser_cocci_menhir.ml"
+# 415 "parser_cocci_menhir.ml"
 )
   | TMetaInit of (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 416 "parser_cocci_menhir.ml"
+# 420 "parser_cocci_menhir.ml"
 )
   | TMetaIdExp of (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 421 "parser_cocci_menhir.ml"
+# 425 "parser_cocci_menhir.ml"
 )
   | TMetaId of (
-# 128 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
-# 426 "parser_cocci_menhir.ml"
+# 430 "parser_cocci_menhir.ml"
 )
   | TMetaFunc of (
-# 129 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 431 "parser_cocci_menhir.ml"
+# 435 "parser_cocci_menhir.ml"
 )
   | TMetaFieldList of (
-# 135 "parser_cocci_menhir.mly"
+# 137 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 436 "parser_cocci_menhir.ml"
+# 440 "parser_cocci_menhir.ml"
 )
   | TMetaField of (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 441 "parser_cocci_menhir.ml"
+# 445 "parser_cocci_menhir.ml"
 )
   | TMetaExpList of (
-# 134 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 446 "parser_cocci_menhir.ml"
+# 450 "parser_cocci_menhir.ml"
 )
   | TMetaExp of (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 451 "parser_cocci_menhir.ml"
+# 455 "parser_cocci_menhir.ml"
 )
   | TMetaErr of (
-# 131 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
-# 456 "parser_cocci_menhir.ml"
+# 460 "parser_cocci_menhir.ml"
 )
   | TMetaDeclarer of (
-# 130 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 461 "parser_cocci_menhir.ml"
+# 465 "parser_cocci_menhir.ml"
 )
   | TMetaDecl of (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 466 "parser_cocci_menhir.ml"
+# 470 "parser_cocci_menhir.ml"
 )
   | TMetaConst of (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 471 "parser_cocci_menhir.ml"
+# 475 "parser_cocci_menhir.ml"
 )
   | TMeta of (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 476 "parser_cocci_menhir.ml"
+# 480 "parser_cocci_menhir.ml"
 )
   | TMPtVirg
   | TLogOp of (
-# 164 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 482 "parser_cocci_menhir.ml"
+# 486 "parser_cocci_menhir.ml"
 )
   | TLocal
   | TLineEnd of (
-# 143 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
-# 488 "parser_cocci_menhir.ml"
+# 492 "parser_cocci_menhir.ml"
 )
   | TIteratorId of (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 493 "parser_cocci_menhir.ml"
+# 497 "parser_cocci_menhir.ml"
 )
   | TIterator
   | TIsoType
@@ -503,62 +507,62 @@ type token =
   | TIso
   | TInvalid
   | TInt of (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 509 "parser_cocci_menhir.ml"
+# 513 "parser_cocci_menhir.ml"
 )
   | TInitialize
   | TInitialiser
   | TIncludeNL of (
-# 149 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 516 "parser_cocci_menhir.ml"
+# 520 "parser_cocci_menhir.ml"
 )
   | TIncludeL of (
-# 149 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 521 "parser_cocci_menhir.ml"
+# 525 "parser_cocci_menhir.ml"
 )
   | TInc of (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 526 "parser_cocci_menhir.ml"
+# 530 "parser_cocci_menhir.ml"
 )
   | TIf of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 531 "parser_cocci_menhir.ml"
+# 535 "parser_cocci_menhir.ml"
 )
   | TIdentifier
   | TIdent of (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 537 "parser_cocci_menhir.ml"
+# 541 "parser_cocci_menhir.ml"
 )
   | TIdExpression
   | TGoto of (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 543 "parser_cocci_menhir.ml"
+# 547 "parser_cocci_menhir.ml"
 )
   | TGenerated
   | TFunction
   | TFunDecl of (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 550 "parser_cocci_menhir.ml"
+# 554 "parser_cocci_menhir.ml"
 )
   | TFresh
   | TForall
   | TFor of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 557 "parser_cocci_menhir.ml"
+# 561 "parser_cocci_menhir.ml"
 )
   | TFloat of (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 562 "parser_cocci_menhir.ml"
+# 566 "parser_cocci_menhir.ml"
 )
   | TFinalize
   | TField
@@ -568,161 +572,161 @@ type token =
   | TEver
   | TError
   | TEqEq of (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 574 "parser_cocci_menhir.ml"
+# 578 "parser_cocci_menhir.ml"
 )
   | TEq of (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 579 "parser_cocci_menhir.ml"
+# 583 "parser_cocci_menhir.ml"
 )
   | TElse of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 584 "parser_cocci_menhir.ml"
+# 588 "parser_cocci_menhir.ml"
 )
   | TEllipsis of (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 589 "parser_cocci_menhir.ml"
+# 593 "parser_cocci_menhir.ml"
 )
   | TDotDot of (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 594 "parser_cocci_menhir.ml"
+# 598 "parser_cocci_menhir.ml"
 )
   | TDot of (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 599 "parser_cocci_menhir.ml"
+# 603 "parser_cocci_menhir.ml"
 )
   | TDo of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 604 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.ml"
 )
   | TDmOp of (
-# 166 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 609 "parser_cocci_menhir.ml"
+# 613 "parser_cocci_menhir.ml"
 )
   | TDisable
   | TDepends
   | TDefineParam of (
-# 151 "parser_cocci_menhir.mly"
+# 154 "parser_cocci_menhir.mly"
        (Data.clt * token * int * int)
-# 616 "parser_cocci_menhir.ml"
+# 620 "parser_cocci_menhir.ml"
 )
   | TDefine of (
-# 150 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
-# 621 "parser_cocci_menhir.ml"
+# 625 "parser_cocci_menhir.ml"
 )
   | TDefault of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 626 "parser_cocci_menhir.ml"
+# 630 "parser_cocci_menhir.ml"
 )
   | TDeclarerId of (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 631 "parser_cocci_menhir.ml"
+# 635 "parser_cocci_menhir.ml"
 )
   | TDeclarer
   | TDeclaration
   | TDec of (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 638 "parser_cocci_menhir.ml"
+# 642 "parser_cocci_menhir.ml"
 )
   | TCppConcatOp
   | TContinue of (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 644 "parser_cocci_menhir.ml"
+# 648 "parser_cocci_menhir.ml"
 )
   | TContext
   | TConstant
   | TComma of (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 651 "parser_cocci_menhir.ml"
+# 655 "parser_cocci_menhir.ml"
 )
   | TChar of (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 656 "parser_cocci_menhir.ml"
+# 660 "parser_cocci_menhir.ml"
 )
   | TCase of (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 661 "parser_cocci_menhir.ml"
+# 665 "parser_cocci_menhir.ml"
 )
   | TCPar0 of (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 666 "parser_cocci_menhir.ml"
+# 670 "parser_cocci_menhir.ml"
 )
   | TCPar of (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 671 "parser_cocci_menhir.ml"
+# 675 "parser_cocci_menhir.ml"
 )
   | TCEllipsis of (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 676 "parser_cocci_menhir.ml"
+# 680 "parser_cocci_menhir.ml"
 )
   | TCCro of (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 681 "parser_cocci_menhir.ml"
+# 685 "parser_cocci_menhir.ml"
 )
   | TCBrace of (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 686 "parser_cocci_menhir.ml"
+# 690 "parser_cocci_menhir.ml"
 )
   | TBreak of (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 691 "parser_cocci_menhir.ml"
+# 695 "parser_cocci_menhir.ml"
 )
   | TBang0
   | TBang of (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 697 "parser_cocci_menhir.ml"
+# 701 "parser_cocci_menhir.ml"
 )
   | TAssign of (
-# 177 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 702 "parser_cocci_menhir.ml"
+# 706 "parser_cocci_menhir.ml"
 )
   | TArobArob
   | TArob
   | TAny of (
-# 143 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
-# 709 "parser_cocci_menhir.ml"
+# 713 "parser_cocci_menhir.ml"
 )
   | TAndLog of (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 714 "parser_cocci_menhir.ml"
+# 718 "parser_cocci_menhir.ml"
 )
   | TAnd of (
-# 162 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
-# 719 "parser_cocci_menhir.ml"
+# 723 "parser_cocci_menhir.ml"
 )
   | EOF
 
 and _menhir_jeton = token
 
 
-# 25 "parser_cocci_menhir.mly"
+# 27 "parser_cocci_menhir.mly"
   
 
 (* Not clear how to allow function declarations to specify a return type
@@ -800,7 +804,7 @@ let tmeta_to_ident (name,pure,clt) =
      (function TMetaId(_,_,_,_,_) -> true | _ -> false));
   Ast0.wrap(Ast0.MetaId(P.clt2mcode name clt,Ast.IdNoConstraint,Ast.NoVal,pure))
 
-# 804 "parser_cocci_menhir.ml"
+# 808 "parser_cocci_menhir.ml"
 let _eRR =
   Error
 
@@ -1055,7 +1059,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           74
       | TOrLog _ ->
           73
-      | TPArob ->
+      | TPArob ->
           72
       | TPCEllipsis _ ->
           71
@@ -1448,8 +1452,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr _v
       | TOrLog _v ->
           Obj.repr _v
-      | TPArob ->
-          Obj.repr ()
+      | TPArob _v ->
+          Obj.repr _v
       | TPCEllipsis _v ->
           Obj.repr _v
       | TPOEllipsis _v ->
@@ -1594,19 +1598,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr _v
   
   let default_reduction =
-    (16, "\000\000\000\000\0036\000\131\000\000\000\000\003\138\001\157\000\000\001\155\001\156\001\154\000\000\001\159\001\158\000\001\000\000\001\212\000\000\000\000\000\147\000\000\000\000\001\202\000\205\000\000\000\000\000\000\000\187\000\186\000\000\000\000\000\000\000\194\000\193\000\000\000\192\000\191\000\000\000\188\000\000\000\185\000\000\000\000\000\000\000\190\000\000\000\189\003\199\003\198\000\000\000\210\000\000\000\209\000\000\000\000\000\000\000\177\000\176\000\000\000\000\000\000\000\184\000\183\000\000\000\182\000\181\000\000\000\178\000\000\000\175\000\000\000\000\000\000\000\180\000\000\000\179\000\000\000\000\000\197\000\196\000\000\000\211\000\000\000\000\000\000\000\204\000\203\000\000\000\202\000\000\000\206\000\201\000\000\000\198\000\000\000\208\000\000\004s\000\000\000\000\0022\0021\0020\002/\000\000\001F\001E\000\000\000\000\002J\000\000\001\226\0024\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\001f\001\150\001e\001d\001c\001b\001\149\001\148\001a\001`\002w\000\000\000\000\002v\000\000\000\000\000\000\000\159\000\000\000\000\000\158\002z\001^\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\214\000\212\000\000\000\207\000\146\000\000\000\195\000\000\000\219\000\000\000\000\000\000\000\200\000\000\000\000\000\000\003Z\000\000\003\191\003\190\003\192\000\000\003\227\000\000\003\184\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\004j\002\253\000\000\000\000\004h\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\004g\004i\003\003\001\144\003\002\001\143\003\001\003\000\002\255\002^\002\251\000\000\000\000\002\252\001G\000\000\000\000\000\000\002\254\000\000\000\000\002\250\004f\000\000\000\000\004G\002\217\000\000\000\000\002\220\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\001H\001\142\002\249\003\006\000m\000\021\000o\000\000\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\000\000S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000d\001R\000p\002\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000n\000f\000\000\000e\000\000\002\218\002\221\000\000\002\219\002\222\004F\000\000\003!\000\000\001\011\000\000\000\000\002K\000\000\001\228\0025\000\000\000\000\002I\000\000\000\000\000\250\000\000\000\000\000\000\000\232\000\231\000\000\000\000\000\000\000\239\000\238\000\000\000\237\000\236\000\000\000\233\000\000\000\230\000\000\000\000\000\000\000\235\000\000\000\234\000\000\000\255\000\000\000\254\000\000\000\000\000\000\000\222\000\221\000\000\000\000\000\000\000\229\000\228\000\000\000\227\000\226\000\000\000\223\000\000\000\220\000\000\000\000\000\000\000\225\000\000\000\224\000\000\000\000\000\242\000\241\000\000\001\000\000\000\000\000\000\000\000\249\000\248\000\000\000\247\000\000\000\251\000\246\000\000\000\243\000\000\000\253\000\000\000\000\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\003\001\001\000\000\000\252\000\000\000\240\000\000\001\b\000\000\000\000\000\000\000\245\000\000\000\000\003\185\003\186\000\000\000\000\001\007\000\000\003\188\003Y\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\157\001\016\001\017\000\000\000\000\000\000\000\000\000\000\002\139\002\156\002R\000\000\000\000\000\000\000\000\000\000\001]\001\021\000\000\002S\000\000\000\000\000\000\000\000\001\015\000\000\001\r\000\000\001\204\000\171\000\000\000\000\000\170\002\143\002\140\000\000\000\000\003\195\000\000\003\194\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\006\001\004\003\226\000\000\000\000\003\197\003\189\000\244\000\000\001\224\0023\000\000\000\000\003 \000\000\000\000\000\000\003\011\000\000\000\000\000\000\003\004\000\000\000\000\000\000\000\000\000\000\003\019\000\000\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001B\001A\000\000\000\000\003\017\001\174\001\173\003\016\000\000\003\015\003\014\003\r\001\176\003\t\000\000\004K\003\n\000\000\000\000\000\000\000\000\000\000\001@\000\000\004L\003\012\000\000\004N\000\000\003\b\000\000\000\000\000w\002\225\000\000\000\000\002\228\000\000\000\000\003\031\003\030\000\015\003\029\003\028\003\027\003\023\000\000\004R\003\024\000\000\000\000\000\000\000\000\004S\003\026\000\000\004U\000\000\003\022\000\000\000y\002\233\000\000\000\000\002\236\000\000\000\000\000\000\000i\000\000\000h\001U\003\"\003\021\001S\000\000\002\239\000\014\000\016\000g\0003\001C\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000\000\000\000\000\000\000\000\002h\000\000\000\000\002\234\002\237\000\000\002\235\002\238\004T\000\151\002l\000\000\000\000\000\150\002i\000\000\002\231\000\000\000\000\002\226\002\229\000\000\002\227\002\230\003\020\003\007\004M\000\000\001Y\000\000\000\000\000\000\000\000\001\171\000\000\001\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\000\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\172\000\000\001\167\000\000\000\000\002}\000\000\000\000\000\000\000\163\000\000\000\000\000\162\002\129\001\175\001\168\000\000\001O\001\166\002~\000\000\001\170\000\000\002\232\000x\000\000\002\224\004O\000\000\002\240\000z\000\000\002\223\004b\004c\004a\004`\004E\000\000\000\000\004D\001k\000\000\002\\\000\000\000\000\000\000\000\000\000\000\001K\002c\000\000\000\000\001\242\000\000\003\005\000\000\000\000\000v\000\000\000\000\000\000\004V\000\000\002]\000\000\000\000\000\000\004d\000\000\000\000\000\000\004H\000\000\000c\001\012\000\000\003\196\000\000\000\000\000\216\000\000\000\000\000\000\000\000\000\217\000\215\000\000\000\000\002Q\000\000\001\240\002<\000\000\003\193\000\000\000\000\000\000\000\218\000\199\000\000\000\000\001\180\000\000\001\179\000\000\001\194\000\000\001\214\000\000\000\000\000\000\004\002\000\000\000\000\000\000\003\240\003\239\000\000\000\000\000\000\003\247\003\246\000\000\003\245\003\244\000\000\003\241\000\000\003\238\000\000\000\000\000\000\003\243\000\000\003\242\000\000\004\007\000\000\004\006\000\000\000\000\000\000\003\230\003\229\000\000\000\000\000\000\003\237\003\236\000\000\003\235\003\234\000\000\003\231\000\000\003\228\000\000\000\000\000\000\003\233\000\000\003\232\000\000\000\000\003\250\003\249\000\000\004\b\000\000\000\000\000\000\004\001\004\000\000\000\003\255\000\000\004\003\003\254\000\000\003\251\000\000\004\005\000\000\000\000\000\000\000\000\004\n\000\000\000\000\000\000\000\000\004\011\004\t\000\000\004\004\000\000\003\248\000\000\004\016\000\000\000\000\000\000\003\253\000\000\002\003\000\000\004>\000\000\000\000\002N\002\004\000\000\001\234\0029\000\000\000\000\000\000\000\000\004\015\003\252\004?\000\000\004B\004A\000\000\000\000\003\154\004@\000\139\000\000\0012\000\000\000\000\000\000\000\000\004\r\000\000\000\000\000\000\000\000\004\014\004\012\000\000\000\000\004/\000\000\000\000\000\000\004\029\004\028\000\000\000\000\000\000\004$\004#\000\000\004\"\004!\000\000\004\030\000\000\004\027\000\000\000\000\000\000\004 \000\000\004\031\000\000\0044\000\000\0043\000\000\000\000\000\000\004\019\004\018\000\000\000\000\000\000\004\026\004\025\000\000\004\024\004\023\000\000\004\020\000\000\004\017\000\000\000\000\000\000\004\022\000\000\004\021\000\000\000\000\004'\004&\000\000\0045\000\000\000\000\000\000\004.\004-\000\000\004,\000\000\0040\004+\000\000\004(\000\000\0042\000\000\000\000\000\000\000\000\0047\000\000\000\000\000\000\000\000\0048\0046\000\000\0041\000\000\004%\000\000\004=\000\000\000\000\000\000\004*\000\000\000\000\000\000\000\000\004<\004)\000\000\000\000\000\000\000\000\004:\000\000\000\000\000\000\000\000\004;\0049\003\180\003\182\003\183\003\181\000\000\000\000\000\000\000\000\000\000\001\162\000\000\000\000\000\000\000\000\000\000\001\019\001\031\001\018\000\000\000\000\000\128\000\000\000\000\000\000\001+\000\000\003\132\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\0011\001u\001t\000\000\000\000\000\000\000\000\001\147\000\000\000\000\000\000\000\000\001$\000\000\001!\000\000\000\000\000\000\000\000\000\000\001,\000\000\001(\000\000\000\000\000\000\000\000\001)\000\000\001%\000\000\000\000\000\000\000\000\003'\000\000\000\000\000\000\000\000\004]\000\000\003\171\000\000\003\170\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\004r\000\000\000\018\000\000\000\000\000\000\000\000\003.\000\000\000\000\000\000\003-\003,\003+\003*\003)\003%\000\000\004Y\003&\000\000\004Z\003(\000\000\004\\\000\000\003$\000\000\000{\002\241\000\000\000\000\002\244\000\000\000\000\002\247\000\000\000\000\002\242\002\245\000\000\002\243\002\246\0030\003#\004[\000\000\000\000\000l\000\000\000k\000\000\003/\000\000\0026\000j\000B\001j\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000C\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\000\000\002\248\000|\000\000\004m\000\000\001\244\000\000\000\000\000\000\001\022\003\161\001\200\000\000\001\199\001\161\001\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\155\001I\000\000\000\000\002o\000\000\000\000\000\154\002s\002p\001W\0013\000\000\0015\0014\000\000\003\173\000\000\003\172\003\157\000\000\000\000\000\000\000\000\000\000\003\167\000\000\003\162\000\000\003\174\000\000\000\000\000\000\000\000\003\168\003\159\002\185\000\000\001\026\001\163\000\000\003\177\000\000\001\165\000\000\000\000\003\205\000\000\003\212\001\028\000\000\001\"\000\000\003\206\001\027\000\000\003\207\000\000\003\214\000\000\000\000\000\000\000\000\001/\000\000\001\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\000\000\0010\000\000\000\000\000\000\000\000\001\146\000\000\000\000\000\000\001#\000\000\001 \000\000\000\000\000\000\000\000\000\000\001*\000\000\001&\001\024\001\023\000\000\003\215\003\216\000\000\003\217\000\000\003\218\000\000\001\164\003\165\000\000\000\000\002P\000\000\001\238\002;\000\000\003\158\000\000\000\000\000\000\003\164\000\000\000\000\000\000\001\135\000\000\001\129\000\000\001\130\000\000\001\140\001\128\001\139\000\000\003\176\001\141\000\000\001\029\000\000\000\000\000\000\000\000\001\137\001\132\002L\000\000\001\133\000\000\001\134\000\000\001\230\0027\000\000\000\000\000\000\002X\000\000\002V\000\000\000\000\002Z\002T\000\000\002[\002U\000\000\003\178\002_\000\000\001\025\000\000\000\000\002M\000\000\001\232\0028\000\000\004n\000\000\004k\000\000\004l\000\019\000\020\000\000\000\000\003f\000\000\003e\000\000\002\159\000\000\003h\000\000\003g\000\000\000\000\000\000\002\167\000\000\000\000\002\171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\000\000\000\000\002\177\000\000\002\161\000\000\000\000\002\164\000\000\000\000\000\000\002\168\000\000\000\000\002\172\000\000\000\000\002O\000\000\000\000\002\165\000\000\000\000\002\169\000\000\000\000\003d\003c\002\162\000\000\000\000\000\000\000\000\002\175\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\176\000\000\002\160\000\000\000\000\002\163\000\000\000\000\000\000\002\166\000\000\000\000\002\170\000\000\001\236\002:\000\000\003i\000\000\000\000\004o\000\017\000~\000\000\004p\000\000\000\000\003\128\000\000\000\000\003\179\000s\000\000\000\000\000\000\000t\000\000\003\169\000\000\001\206\000\000\001\208\003\166\000\000\000\000\001\186\000\000\001\185\000\000\001\195\000\000\001\220\000\000\000\000\000\000\001\184\000\000\001\183\000\000\001\192\000\000\001\218\000\000\000\000\000\000\001\191\000\000\000\000\000\000\001\188\000\000\001\187\000\000\001\193\000\000\001\222\000\000\000\000\000\000\001\189\000\000\000\000\000\000\001\182\000\000\001\181\000\000\001\196\000\000\001\216\000\000\000\000\000\000\001\190\000\002\000\000\000`\000\000\000\000\002.\000a\000\000\000\000\003@\003D\003H\003<\003M\0039\000\000\000\000\003E\003L\003=\003K\003;\003J\003?\0037\003>\003G\003:\003A\0038\003C\003I\003F\003B\002\t\002\b\000\137\000\000\000\000\003\150\000\000\000\000\000\000\000\000\003{\003x\000\000\000\000\003|\003y\003z\003W\000\000\000\000\003\156\003O\003N\003P\000\000\002\026\000_\001\197\000\003\000\000\000\000\0033\000\000\002\181\000\000\000\138\000\000\000\000\003\152\000\000\000\000\000\000\000\130\000\000\000\000\003\136\000\000\002\153\002\152\002\000\003X\000\000\002)\000\000\0034\000\000\000\000\000\132\000\000\000\000\003\140\000\000\002\023\000\000\000\000\002\015\000\000\000\000\000\000\002\022\000\000\002\018\000\000\000\000\000\000\001\246\001\245\000\000\000\000\000\000\002*\000\000\002\r\000\000\002\012\000\000\000\127\000\000\000\000\003\130\000\000\000\000\002\007\000\000\000\000\002\011\000\000\000\000\000\135\000\000\000\000\003\146\000\000\000\000\003a\000\000\003`\000\000\000\000\000\000\002\151\002\150\003^\002\191\003S\003_\000\000\002\029\000\000\000\000\000\000\002\025\000\000\002\031\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\002\017\000\000\002\016\000\000\000\000\000\000\003U\000\136\000\000\000\000\003\148\000\000\003T\000\000\002\027\000\000\000\000\002\028\000\000\000\000\000\000\000\000\000\000\000\000\002,\000\000\002\021\000\000\002\020\000\000\000\000\001o\000\000\001n\000\000\000\000\000\000\000\000\000\000\002+\000\000\002\014\000\000\001m\000\000\002e\000\133\000\000\000\000\003\142\000\000\000\000\000\000\000\000\003\201\003\200\000\000\000\000\001\153\001\152\000\129\001\151\000\000\000\000\003\134\000\000\002\145\002\144\002\147\003Q\002\187\002\146\001l\000\000\000\134\000\000\000\000\003\144\000\000\000\000\000\000\000\000\002\149\002\148\003]\003[\002\189\003R\003\\\000\000\002$\000\000\002'\000\000\000\000\002 \000\000\000\000\000\000\002\024\000\000\002\030\000\000\000\000\002\019\000\000\000\000\000\000\000\000\000\000\000\000\002\006\000\000\000\000\002&\000\000\002%\000\000\000\000\000\000\000\000\002#\000\000\000\000\002\"\000\000\002!\000\000\000\000\002(\000\000\000\000\001\198\000\004\000\000\002\n\000\005\000\000\000\000\001r\000\006\000\000\002@\002A\002?\000\000\002>\003\202\001\252\000\000\000\007\000\000\002C\002D\002B\000\000\000\000\000\000\000\000\001w\000\000\000\000\000\000\000\000\001|\001~\001}\001x\001z\001y\000\000\000\000\000\000\000\000\000\000\003\208\003\221\000\000\003\209\000\000\003\210\000\000\000\000\003\203\000\000\000\000\000\000\000\000\003\220\000\000\000\000\003\219\002H\002G\000\000\000\000\001\254\002=\002E\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\000\000\000\000\000\000\002\132\002\154\000\000\000\000\000\000\000\167\000\000\000\000\000\166\002\136\002\133\001[\001\020\000\000\000\000\000\000\000\000\001\145\001s\000\000\003\224\000\000\003\225\000\000\000\000\002b\002`\000\000\002a\000\b\000\000\000\t\000\000\002\206\002\207\002\205\000\000\002\204\000\000\000\n\000\000\002\209\002\210\002\208\000\000\002\212\000\000\000\000\000\000\002\198\000\000\000\000\002\200\000\000\002\194\000\000\002\196\000\000\002\201\000\000\002\202\000\000\002\195\002\193\002\213\002\002\002\203\000\000\002\215\000\000\002\214\000\000\002\216\000\000\003b\000\011\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\001:\000\000\0019\000\000\0017\000\000\000\000\000\000\000\000\000\000\001;\0018\000\000\001=\000\000\000\000\000\000\003n\000\000\003m\000\000\000\000\000\000\000\000\003o\000\000\000\000\001q\000\000\000\000\000\000\000\000\000\000\003~\000}\000\000\000\000\001D\000\000\001h\001g\000\000\001\178\000\000\003l\001\250\001\248\000\000\000\000\000\000\000\000\003p\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003k\000\000\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003w\000\000\000\000\003v\000\000\003s\000\000\000\000\000\000\000\000\000\000\003t\000\000\000\000\000\000\003u\000\r\000\000\003q\000\000\003r")
+    (16, "\000\000\000\000\003@\000\131\000\000\000\000\003\148\001\160\000\000\001\158\001\159\001\157\000\000\001\162\001\161\000\001\000\000\001\217\000\000\000\000\000\147\000\000\000\000\001\207\000\205\000\000\000\000\000\000\000\187\000\186\000\000\000\000\000\000\000\194\000\193\000\000\000\192\000\191\000\000\000\188\000\000\000\185\000\000\000\000\000\000\000\190\000\000\000\189\003\209\003\208\000\000\000\210\000\000\000\209\000\000\000\000\000\000\000\177\000\176\000\000\000\000\000\000\000\184\000\183\000\000\000\182\000\181\000\000\000\178\000\000\000\175\000\000\000\000\000\000\000\180\000\000\000\179\000\000\000\000\000\197\000\196\000\000\000\211\000\000\000\000\000\000\000\204\000\203\000\000\000\202\000\000\000\206\000\201\000\000\000\198\000\000\000\208\000\000\004}\000\000\000\000\0027\0026\0025\0024\000\000\001H\001G\000\000\000\000\002O\000\000\001\231\0029\000\000\000\000\000\000\000\000\000\000\001P\000\000\000\000\001i\001\153\001h\001g\001f\001e\001\152\001\151\001d\001c\002|\000\000\000\000\002{\000\000\000\000\000\000\000\159\000\000\000\000\000\158\002\127\001a\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\214\000\212\000\000\000\207\000\146\000\000\000\195\000\000\000\219\000\000\000\000\000\000\000\200\000\000\000\000\000\000\003d\000\000\003\201\003\200\003\202\000\000\003\237\000\000\003\194\000\000\000\000\000\000\000\000\001T\000\000\000\000\000\000\004t\003\007\000\000\000\000\004r\000\000\003#\000\000\000\000\000\000\000\000\000\000\000\000\004q\004s\003\r\001\147\003\012\001\146\003\011\003\n\003\t\002c\003\005\000\000\000\000\003\006\001I\000\000\000\000\000\000\003\b\000\000\000\000\003\004\004p\000\000\000\000\004Q\002\223\000\000\000\000\002\226\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\001J\001\145\003\003\003\016\000m\000\021\000o\000\000\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\000\000S\000\000\000\000\000\000\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\003\000\000p\000\000\000\000\000\141\001L\002\189\002\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000n\000f\000\000\000e\000\000\002\224\002\227\000\000\002\225\002\228\004P\000\000\003+\000\000\001\011\000\000\000\000\002P\000\000\001\233\002:\000\000\000\000\002N\000\000\000\000\000\250\000\000\000\000\000\000\000\232\000\231\000\000\000\000\000\000\000\239\000\238\000\000\000\237\000\236\000\000\000\233\000\000\000\230\000\000\000\000\000\000\000\235\000\000\000\234\000\000\000\255\000\000\000\254\000\000\000\000\000\000\000\222\000\221\000\000\000\000\000\000\000\229\000\228\000\000\000\227\000\226\000\000\000\223\000\000\000\220\000\000\000\000\000\000\000\225\000\000\000\224\000\000\000\000\000\242\000\241\000\000\001\000\000\000\000\000\000\000\000\249\000\248\000\000\000\247\000\000\000\251\000\246\000\000\000\243\000\000\000\253\000\000\000\000\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\003\001\001\000\000\000\252\000\000\000\240\000\000\001\b\000\000\000\000\000\000\000\245\000\000\000\000\003\195\003\196\000\000\000\000\001\007\000\000\003\198\003c\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\001\017\001\018\000\000\000\000\000\000\000\000\000\000\002\144\002\161\002W\000\000\000\000\000\000\000\000\000\000\001`\001\022\000\000\002X\000\000\000\000\000\000\000\000\001\016\000\000\001\014\000\000\001\209\000\171\000\000\000\000\000\170\002\148\002\145\000\000\000\000\003\205\000\000\003\204\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\006\001\004\003\236\000\000\000\000\003\207\003\199\000\244\000\000\001\229\0028\000\000\000\000\003*\000\000\000\000\000\000\003\021\000\000\000\000\000\000\003\014\000\000\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001D\001C\000\000\000\000\003\027\001\177\001\176\003\026\000\000\003\025\003\024\003\023\001\179\003\019\000\000\004U\003\020\000\000\000\000\000\000\000\000\000\000\001B\000\000\004V\003\022\000\000\004X\000\000\003\018\000\000\000\000\000w\002\231\000\000\000\000\002\234\000\000\000\000\003)\003(\000\015\003'\003&\003%\003!\000\000\004\\\003\"\000\000\000\000\000\000\000\000\004]\003$\000\000\004_\000\000\003 \000\000\000y\002\239\000\000\000\000\002\242\000\000\000\000\000\000\000i\000\000\000h\001X\003,\003\031\001V\000\000\002\245\000\014\000\016\000g\0003\001\r\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000\000\000\000\000\000\000\000\002m\000\000\000\000\002\240\002\243\000\000\002\241\002\244\004^\000\151\002q\000\000\000\000\000\150\002n\000\000\002\237\000\000\000\000\002\232\002\235\000\000\002\233\002\236\003\030\003\017\004W\000\000\001\\\000\000\000\000\000\000\000\000\001\174\000\000\001\215\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\001\170\000\000\000\000\002\130\000\000\000\000\000\000\000\163\000\000\000\000\000\162\002\134\001\178\001\171\000\000\001R\001\169\002\131\000\000\001\173\000\000\002\238\000x\000\000\002\230\004Y\000\000\002\246\000z\000\000\002\229\004l\004m\004k\004j\004O\000\000\000\000\004N\000\000\000\000\003\002\001n\000\000\002a\000\000\000\000\000\000\000\000\000\000\001N\002h\000\000\000\000\001\247\003\001\000\000\003\015\000\000\000\000\000v\000\000\000\000\000\000\004`\000\000\002b\000\000\000\000\000\000\004n\000\000\000\000\000\000\004R\000\000\000c\001\012\000\000\003\206\000\000\000\000\000\216\000\000\000\000\000\000\000\000\000\217\000\215\000\000\000\000\002V\000\000\001\245\002A\000\000\003\203\000\000\000\000\000\000\000\218\000\199\000\000\000\000\001\183\000\000\001\182\000\000\001\197\000\000\001\219\000\000\000\000\000\000\004\012\000\000\000\000\000\000\003\250\003\249\000\000\000\000\000\000\004\001\004\000\000\000\003\255\003\254\000\000\003\251\000\000\003\248\000\000\000\000\000\000\003\253\000\000\003\252\000\000\004\017\000\000\004\016\000\000\000\000\000\000\003\240\003\239\000\000\000\000\000\000\003\247\003\246\000\000\003\245\003\244\000\000\003\241\000\000\003\238\000\000\000\000\000\000\003\243\000\000\003\242\000\000\000\000\004\004\004\003\000\000\004\018\000\000\000\000\000\000\004\011\004\n\000\000\004\t\000\000\004\r\004\b\000\000\004\005\000\000\004\015\000\000\000\000\000\000\000\000\004\020\000\000\000\000\000\000\000\000\004\021\004\019\000\000\004\014\000\000\004\002\000\000\004\026\000\000\000\000\000\000\004\007\000\000\002\b\000\000\004H\000\000\000\000\002S\002\t\000\000\001\239\002>\000\000\000\000\000\000\000\000\004\025\004\006\004I\000\000\004L\004K\000\000\000\000\003\164\004J\000\139\000\000\0014\000\000\000\000\000\000\000\000\004\023\000\000\000\000\000\000\000\000\004\024\004\022\000\000\000\000\0049\000\000\000\000\000\000\004'\004&\000\000\000\000\000\000\004.\004-\000\000\004,\004+\000\000\004(\000\000\004%\000\000\000\000\000\000\004*\000\000\004)\000\000\004>\000\000\004=\000\000\000\000\000\000\004\029\004\028\000\000\000\000\000\000\004$\004#\000\000\004\"\004!\000\000\004\030\000\000\004\027\000\000\000\000\000\000\004 \000\000\004\031\000\000\000\000\0041\0040\000\000\004?\000\000\000\000\000\000\0048\0047\000\000\0046\000\000\004:\0045\000\000\0042\000\000\004<\000\000\000\000\000\000\000\000\004A\000\000\000\000\000\000\000\000\004B\004@\000\000\004;\000\000\004/\000\000\004G\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\004F\0043\000\000\000\000\000\000\000\000\004D\000\000\000\000\000\000\000\000\004E\004C\003\190\003\192\003\193\003\191\000\000\000\000\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\000\000\001\020\001 \001\019\000\000\000\000\000\128\000\000\000\000\000\000\001,\000\000\003\142\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\0013\001x\001w\000\000\000\000\000\000\000\000\001\150\000\000\000\000\000\000\000\000\001%\000\000\001\"\000\000\000\000\000\000\000\000\000\000\001-\000\000\001)\000\000\000\000\000\000\000\000\001*\000\000\001&\000\000\000\000\000\000\000\000\0031\000\000\000\000\000\000\000\000\004g\000\000\003\181\000\000\003\180\000\000\000\000\000\000\000\000\004{\000\000\000\000\000\000\004|\000\000\000\018\000\000\000\000\000\000\000\000\0038\000\000\000\000\000\000\0037\0036\0035\0034\0033\003/\000\000\004c\0030\000\000\004d\0032\000\000\004f\000\000\003.\000\000\000{\002\247\000\000\000\000\002\250\000\000\000\000\002\253\000\000\000\000\002\248\002\251\000\000\002\249\002\252\003:\003-\004e\000\000\000\000\000l\000\000\000k\000\000\0039\000\000\002;\000j\000B\001m\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000C\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\000\000\002\254\000|\000\000\004w\000\000\001\249\000\000\000\000\000\000\001\023\003\171\001\205\000\000\001\204\001\164\001\163\000\000\000\000\000\000\000\000\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\155\001K\000\000\000\000\002t\000\000\000\000\000\154\002x\002u\001Z\0015\000\000\0017\0016\000\000\003\183\000\000\003\182\003\167\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\172\000\000\003\184\000\000\000\000\000\000\000\000\003\178\003\169\002\191\000\000\001\027\001\166\000\000\003\187\000\000\001\168\000\000\000\000\003\215\000\000\003\222\001\029\000\000\001#\000\000\003\216\001\028\000\000\003\217\000\000\003\224\000\000\000\000\000\000\000\000\0010\000\000\000\000\0011\000\000\001\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001.\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\149\000\000\000\000\000\000\001$\000\000\001!\000\000\000\000\000\000\000\000\000\000\001+\000\000\001'\001\025\001\024\000\000\003\225\003\226\000\000\003\227\000\000\003\228\000\000\001\167\003\175\000\000\000\000\002U\000\000\001\243\002@\000\000\003\168\000\000\000\000\000\000\003\174\000\000\000\000\000\000\001\138\000\000\001\132\000\000\001\133\000\000\001\143\001\131\001\142\000\000\003\186\001\144\000\000\001\030\000\000\000\000\000\000\000\000\001\140\001\135\002Q\000\000\001\136\000\000\001\137\000\000\001\235\002<\000\000\000\000\000\000\002]\000\000\002[\000\000\000\000\002_\002Y\000\000\002`\002Z\000\000\003\188\002d\000\000\001\026\000\000\000\000\002R\000\000\001\237\002=\000\000\004x\000\000\004u\000\000\004v\000\019\000\020\000\000\000\000\003p\000\000\003o\000\000\002\164\000\000\003r\000\000\003q\000\000\000\000\000\000\002\172\000\000\000\000\002\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002\183\000\000\002\166\000\000\000\000\002\169\000\000\000\000\000\000\002\173\000\000\000\000\002\177\000\000\000\000\002T\000\000\000\000\002\170\000\000\000\000\002\174\000\000\000\000\003n\003m\002\167\000\000\000\000\000\000\000\000\002\180\000\000\000\000\002\181\000\000\002\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\002\182\000\000\002\165\000\000\000\000\002\168\000\000\000\000\000\000\002\171\000\000\000\000\002\175\000\000\001\241\002?\000\000\003s\000\000\000\000\004y\000\017\000~\000\000\004z\000\000\000\000\003\138\000\000\000\000\003\189\000s\000\000\000\000\000\000\000t\000\000\003\179\000\000\001\211\000\000\001\213\003\176\000\000\000\000\001\191\000\000\001\190\000\000\001\198\000\000\001\227\000\000\000\000\000\000\001\187\000\000\001\186\000\000\001\195\000\000\001\223\000\000\000\000\000\000\001\194\000\000\000\000\001\202\000\000\000\000\001\189\001\203\000\000\001\188\000\000\001\196\000\000\001\225\000\000\000\000\000\000\001\192\000\000\000\000\000\000\001\185\000\000\001\184\000\000\001\199\000\000\001\221\000\000\000\000\000\000\001\193\000\002\000\000\000`\000\000\000\000\0023\000a\000\000\000\000\003J\003N\003R\003F\003W\003C\000\000\000\000\003O\003V\003G\003U\003E\003T\003I\003A\003H\003Q\003D\003K\003B\003M\003S\003P\003L\002\014\002\r\000\137\000\000\000\000\003\160\000\000\000\000\000\000\000\000\003\133\003\130\000\000\000\000\003\134\003\131\003\132\003a\000\000\000\000\003\166\003Y\003X\003Z\000\000\002\031\000_\001\200\000\003\000\000\000\000\003=\000\000\002\187\000\000\000\138\000\000\000\000\003\162\000\000\000\000\000\000\000\130\000\000\000\000\003\146\000\000\002\158\002\157\002\005\003b\000\000\002.\000\000\003>\000\000\000\000\000\132\000\000\000\000\003\150\000\000\002\028\000\000\000\000\002\020\000\000\000\000\000\000\002\027\000\000\002\023\000\000\000\000\000\000\001\251\001\250\000\000\000\000\000\000\002/\000\000\002\018\000\000\002\017\000\000\000\127\000\000\000\000\003\140\000\000\000\000\002\012\000\000\000\000\002\016\000\000\000\000\000\135\000\000\000\000\003\156\000\000\000\000\003k\000\000\003j\000\000\000\000\000\000\002\156\002\155\003h\002\197\003]\003i\000\000\002\"\000\000\000\000\000\000\002\030\000\000\002$\000\000\000\000\000\000\000\000\000\000\000\000\0022\000\000\002\022\000\000\002\021\000\000\000\000\000\000\003_\000\136\000\000\000\000\003\158\000\000\003^\000\000\002 \000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\002\026\000\000\002\025\000\000\000\000\001r\000\000\001q\000\000\000\000\000\000\000\000\000\000\0020\000\000\002\019\000\000\001p\000\000\002j\000\133\000\000\000\000\003\152\000\000\000\000\000\000\000\000\003\211\003\210\000\000\000\000\001\156\001\155\000\129\001\154\000\000\000\000\003\144\000\000\002\150\002\149\002\152\003[\002\193\002\151\001o\000\000\000\134\000\000\000\000\003\154\000\000\000\000\000\000\000\000\002\154\002\153\003g\003e\002\195\003\\\003f\000\000\002)\000\000\002,\000\000\000\000\002%\000\000\000\000\000\000\002\029\000\000\002#\000\000\000\000\002\024\000\000\000\000\000\000\000\000\000\000\000\000\002\011\000\000\000\000\002+\000\000\002*\000\000\000\000\000\000\000\000\002(\000\000\000\000\002'\000\000\002&\000\000\000\000\002-\000\000\000\000\001\201\000\004\000\000\002\015\000\005\000\000\000\000\001u\000\006\000\000\002E\002F\002D\000\000\002C\003\212\002\001\000\000\000\007\000\000\002H\002I\002G\000\000\000\000\000\000\000\000\001z\000\000\000\000\000\000\000\000\001\127\001\129\001\128\001{\001}\001|\000\000\000\000\000\000\000\000\000\000\003\218\003\231\000\000\003\219\000\000\003\220\000\000\000\000\003\213\000\000\000\000\000\000\000\000\003\230\000\000\000\000\003\229\002M\002L\000\000\000\000\002\003\002B\002J\000\000\000\000\000\000\000\000\000\000\002\160\000\000\000\000\000\000\000\000\000\000\002\137\002\159\000\000\000\000\000\000\000\167\000\000\000\000\000\166\002\141\002\138\001^\001\021\000\000\000\000\000\000\000\000\001\148\001v\000\000\003\234\000\000\003\235\000\000\000\000\002g\002e\000\000\002f\000\b\000\000\000\t\000\000\002\212\002\213\002\211\000\000\002\210\000\000\000\n\000\000\002\215\002\216\002\214\000\000\002\218\000\000\000\000\000\000\002\204\000\000\000\000\002\206\000\000\002\200\000\000\002\202\000\000\002\207\000\000\002\208\000\000\002\201\002\199\002\219\002\007\002\209\000\000\002\221\000\000\002\220\000\000\002\222\000\000\003l\000\011\000\000\000\000\000\000\000\000\000\000\000\000\0018\000\000\000\000\001<\000\000\001;\000\000\0019\000\000\000\000\000\000\000\000\000\000\001=\001:\000\000\001?\000\000\000\000\000\000\003x\000\000\003w\000\000\000\000\000\000\000\000\003y\000\000\000\000\001t\000\000\000\000\000\000\000\000\000\000\003\136\000}\000\000\000\000\001F\000\000\001k\001j\000\000\001\181\000\000\003v\001\255\001\253\000\000\000\000\000\000\000\000\003z\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\128\000\000\003}\000\000\000\000\000\000\000\000\000\000\003~\000\000\000\000\000\000\003\127\000\r\000\000\003{\000\000\003|")
   
   let error =
-    (194, "\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\012\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\0000\000\000\000\000\000\000\000\000\000 \000\002\000A\128\000\000\129\012\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\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\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\002\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\240\000\000\000\000\000\000\000\001\235\218\188\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\149\r\000(\194\rP@\200e\002\024\004\208\b\135x\018\000\0049\144\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\000F\180p\000\001\0001\000\003\000\020\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\017\173\028\000\000@\012@\000\192\005\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004+C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004+S\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\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\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\016\000\000\000 \128\000\004\001\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\001\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\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\002\004\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\001\000\000\000\002\000\000\000@\016\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\004\000\000\000\000\b\000\000\129\000\000\000\000\000\000\001\000\000\000\000\000\000\000\1940\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\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\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\000\000\000@\000\000\000\000\000\000@\000\000\000\130\000\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\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\030\189\171\192\000A\000 \000\002\000\004\000\024\016\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\000A\000\000\000\002\016\000\000@\016\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\001\235\218\188\000\004\016\002\000\000 \128@\001\129\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\030\189\171\192\016A\000 \000\002\b\004\000\024\016\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\000\000\000\000\000\000\001\235\218\188\000\004\016\002\000\000 \000@\001\129\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016B!\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\000\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000@\000\000\000\000\000\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\232\004'\199p\000\000\000\000\000@\000\000\000\128\000\000\016\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\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\159\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\178\000\t\225\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\027 \000\158\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\017\004\216D\176\000\000\005\000 \000\000\004\200\000'\131p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000@\016\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\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\016\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\000\000\128\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\003\175j\208\000\016\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\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\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\018\129\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\1800\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\1810\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\000@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012^\189\171\192\000A\000 \000\002\b\004\000\024\016\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\000\000\000\000\000\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\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\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000\000\000\000\016\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\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\001\000\000\000\003\000\000\000@\016\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\016\000\000\000 \000\000\004\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\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\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000 \000\000\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\000\000\000\b\000\030\189\171\192\000@\000 \000\002\b\004`\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\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000\000\004\001\000\000\000\128\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\007\175j\240\000\016\000\b\000\000\130\001\024\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\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\000 \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\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\246\173\000\001\004\000\128\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000A\000\000\000\002\016\000\000@\016\000\000\b\000\000\000\000\000\000\007\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\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\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\001\000\000\000\002\000\000\000@\016\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\000\004\016\b`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\b\000\000\003\000\004\024\020\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\007\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\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\001I\000\001\000\196(\0068\200\000\006\018\001\000\000\001\004\002\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\149\029\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\016A!\128\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\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\000\000\002@\000\000\196\1936Y,\000\000\001@\b\016\000\001\186\001\tQ\220\000\000\000\000\000R@\000@0\n\001\1422\000\001\132\128@\000\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\192\129\006I(\000\000\001\000\000\016\000\001\n\001\b\016\024\000\000\000\000\000\016\000\000\000 \000\000\004\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\bg\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\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\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000\000\001\004\130\025\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001\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\000R@\000H4\n\001\1423\000\000\132\128@\000\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\192\129\022I(\000\000\001\000\000\016\000\001\170\001\b\193\024\000\000\000\000\000\016\000\000\000 \000\000\004\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\b`\000\000\002@\000\000\192\001\022\001(\000\000\001\000\000\000\000\001\162\000\b\193\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\0000\001\004\002\024\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\003\004\025$\176\000\000\004\000\000@\000\006h\004$D`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\016\012\194\128o\140\192\000a \016\b\128\016@!\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\001I\000\001\000\204(\006\248\204\000\006\018\001\000\136\001\004\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\128\000\000\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\016A!\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\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@\"\000A\004\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\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\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\000\000@\000\000\000\000\000\000\000\000\000\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\002\000\000\004\000\000\000\000\000\016\005$\000\004\131@\160\024\2270\000\bH\004\000\000\004\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\000R@\000H4\n\001\1423\000\000\132\128@\000\000A\000\134\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\128\004\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\001\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\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\t\000\000\003\000\004X\020\160\000\000\004\000\000\000\000\006\136\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\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\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\016\144\b`\017\000 \b@\000\000\000&C\023\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\004\000\128\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\0000\001\000\004\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\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\128\000\000\000\000\000\000\000^\189\171\192\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\000\000\000\000\001\235\218\188\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\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\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(g\175j\240\000\016\000\b\000\000\128\001\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\b\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\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\225\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\000@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\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\246\175\000\001\000\000\128\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\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\000\030\189\171\192\000@\000 \000\002\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000@\n0\130D\016\003\024@\000\001$\000!\218\004\128\001\012\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\b@\000\001\000@\000\000 \000\000\000\000\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\235\218\180\000\004\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\001(\016\000\000\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\014\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\128\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\b\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\0008A\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\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\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\000\000\000\000\000\000@\000\000\000\130\000\000\016\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\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\016\000\000\000!\000\000\004\001\000\000\000\128\000\000\000\000\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\128\001\004\000\128\000\b\000\016\000\003\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\246\175\000\001\004\000\128\000\b\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\016\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\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\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\004\000\000\000\012\000\000!\128@\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\128\000\000\016\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\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\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\016\000\018\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\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\175j\208\000\016@\b\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\016\004\000\000\002\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\002\000\000\000\000\000\000\000\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\001\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\030Q\134\134\000\000\000$\000\004\012L\019m\146\192\001\000T\000\129 \000\027\160\016\020\029\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\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\t\000\000\003\017\004\216T\176\000\000\005\000 \000\000\006\136\000\005\007p\000\000\000\000\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@\016H4\n\001\1423\000\000\132\128@\b\000A\000\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\016\000\000\000\000\000\000\000@\136\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\007\255\235\248 Qi\nA\000\196)\1998\252 \006z\131\000\004iD\n\025\255\250\254\b\020ZB\144H5\011q\206?\b\001\158\160\192\t\026QB\134z\246\175\000\001\020\144\128\018\r\002\144c\140\192\000! \016\002\000\016@!\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\144\000\016\012B\128c\140\128\000a \016\000\000\016@!\128\000\000\000\000\005$\000\004\003\000\160\024\227 \000\024H\004\000\000\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\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\000\000\000\000\001I\000\001\000\192(\0068\200\000\006\018\001\000\000\001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\168\004\005\007p\000\000\000\000\000@\000\000\000\128\000\000\016\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\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\017\004\216D\176\000\000\005\000 \000\000\006\136\000\005\007p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\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\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\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\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\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\191\240\241E\164)\004\003\024\183\028\227\241\128\025\234L\000\017\229\028kp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\159\255\175\224\129E\164)\004\131P\167\028\227\240\128\025\234\012\000\145\165\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\191\240\129E\1649\004\195P\183\028\227\241\1289\234L\001\209\229\029kp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000A \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\020\144\004\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\002\000\000\016\004\000\000\002\000\000 \000\000\128\000\000\000\000\000\000\016\000\000\000\000\128\000\004\001\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\136\000\000\000\000\000\000\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\002\000\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\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\136\000\000\000\000\000\000\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\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\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\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\127\254\191\130\005\022\144\164\018\rB\156s\143\198\000g\1680\002F\148@\161\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\001\255\251\255\015\020ZB\144@1\139q\206?\024\001\158\164\192\001\030Q\198\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\255\250\254\b\020ZB\144@1\138q\206?\024\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\002\001\000\000\000\000\004\000\000\000\000\002\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\007\255\235\248 Qi\nA\000\198)\1998\252`\006z\131\000\004iD\n\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\003\019\004\219d\176\000@\021\000 H\000\006\232\004\005\007p\000\000\000\000\000\000\000\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\b\004\000\000\000\000\016\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\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\127\254\191\130\005\022\144\164\016\012b\156s\143\198\000g\1680\000F\148@\173\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\001\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A \134\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\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\016\000\016\0000\000\000\134\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\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\128\000\000\016\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\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\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\235\218\180\000\004\016\002\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\001\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\002\000\000 \000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\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\031\255\175\224\129E\164)\004\131P\167\028\227\241\128\025\234\012\000\145\165\016+p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\004\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\007\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\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\004\000\004\000\012\000\000!\128D\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000\127\254\255\194\005\022\144\228\019\rB\220s\143\198\000\231\1690\006G\148u\173\192\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\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\255\250\254\b\020ZB\144@1\139q\206?\b\001\158\160\192\001\030Q\198\134\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\002\000\000\000\000\031\255\175\224\129E\164)\004\003\024\183\028\227\240\128\025\234\012\000\017\229\028h`\000\000\000\000\000\000\000\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\b\004\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\031\255\175\224\129E\164)\004\131P\183\028\227\240\128\025\234\012\000\145\229\028h`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZB\144H5\011q\206?\b\001\158\160\192\t\030Q\198\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\031\255\175\224\129E\164)\004\003\024\183\028\227\240\128\025\234\012\000\017\165\020(`\000\000\000\000\000\000\000\000 \016\004\000\000\000\000\000\000\000\000 \000\001\000\001\255\250\254\b\020ZB\144@1\139q\206?\b\001\158\160\192\001\026QB\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\b\004\001\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\031\255\175\224\129E\164)\004\131P\183\028\227\240\128\025\234\012\000\145\165\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\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\192\004\002\024\004\000\000\002\000\000\000\000\001\000\000\000\000\000\000\000\000\001\000\012\004\000\000\000\000\000\002\000\000\000\b\000\000\016\001\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\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\004@0\016\000\000\000\000\000\b\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\127\254\191\130\005\022\144\228\019\rB\156s\143\194\000\231\1680\002F\148D\161\223\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\127\254\191\130\005\022\144\228\019\rB\156s\143\194\000\231\1680\002F\148D\161\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\031\255\175\224\129E\164)\004\131P\183\028\227\240\128\025\234\012\000\145\165\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\001\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\001\000\000\000\000\004\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\007\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\191\235\248\000\017I\nA\000\192)\0068\248\000\006\018\001\000\000\tD\n\024\000\000\000\000\000R@\016H4\n\001\1423\000\000\132\128@\b\000A\000\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\239\250\254\000\004RB\144@0\nA\142>\000\001\132\128@\000\002Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\030\189\171\192\000A\000 \000\002\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\012\000\000!\128@\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\128\000\000\016\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\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\014\189\171@\000A\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\128\000\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\016\000\030\255\175\224\000E$)\004\003\000\164\024\227\224\000\024H\004\000\000%\016(`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\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\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\t\000\001\003\003\004\027$\176\000@\020\000\000H\000\006(\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A \134\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\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\016\000\016\0000\000\000\134\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\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\128\000\000\016\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\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\014\189\171@\000A\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\128\000\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\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\003\000\016\b`\016\000\000\b\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\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\016\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\031\255\175\224\129E\164)\004\131P\167\028\227\240\128\025\234\012\000\145\229\024h`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\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\255\250\254\000\004\016\002\000\000 \000@\000\012\000\000\000\128\000\000\006\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\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\005\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\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\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\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\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\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\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\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\004\000\000\000\b\016Z@\144@1\n\017\2063\b\001\158\160\192\001\024Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\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\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\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\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\255\250\254\000\004\016\002\000\000 \000@\000\012\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\128\000\000\000\000\000\000\000_\255\175\224\000A\000 \000\002\000\004\000\000\192\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\001\255\250\254\000\004\016\002\000\000 \000@\000\012\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\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\001\000\000\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\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\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\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\007\175j\240\1288\130\t\018@\132\003\000\000\004\144\000\133(R\000\0060\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\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000@\004\000\162\b\004A\000\001\000\000\000\002@\002\029\160H\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\002\000\000 \000\000\000\000\000\002\000\b\b\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\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\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\b\000\000\000\000\000\000\002 \000\000\000\000\000\002\000\b\b\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000z\246\175\000\003\128 \145\004\b@0\000\000I\000\bR\005 \000c\000\000\030\189\171\192\000\224\b \001\002\016\012\000\000\018@\002\020\129H\000\024\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\004\000@\n \130F\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\000\000\000\000\000\000\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\001\000\000\000\002\000\000\000\000\000\000\000\b\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\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\b\016\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\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000z\246\175\000\003\128 \144\004\b@0\000\000I\000\bR\005 \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\007\175j\240\0008\002\b\000@\132\003\000\000\004\144\000\133 R\000\006\016\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000 @\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\000@\000\000\002\144\000\135h\018\000\0048\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\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\136 \145\004\000\132\000\000\000)\000\bv\129 \000C\128\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\n\029\160H\000\016\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\002\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000z\246\175\000\001\000\000\128\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\b\016\001\235\218\188\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\130\t\016@\000`\000\000\000\144\000\135h\018\000\0040\000\000\000\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\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\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\000H\000\000\000\000\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\002\000\000\000\000\000\000\000\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\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\024\000\000\000\000\004\000\000\000\b\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\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\016\001\000(\130\t\016@\004@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000.\130\t\016@\001@\000\000\002\144\000\135h\018\000\0048\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\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\136 \145\004\000\132\000\000\000)\000\bv\129 \000C\128\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\n\029\160H\000\016\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\002(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\001\000\016\"\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\006\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\b@\000\000\002\144\000\135h\018\000\0048\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000\161\218\004\128\001\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\002\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\n\001\b\016\002\136 \145\004\000\006\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\162\b$A\000\001\128\000\000\002@\002\029\160H\000\016\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\004\000@\n \130D\016\000\024\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\162H$A\000%\000\000\000\n@\002\029\160H\000\016\224\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\002\135h\018\000\0040\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\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\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@\004\000\162\b$A\000\001\128\000\000\002@\002\029\160H\000\016\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\004\000@\n \130D\016\000\024\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\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\004\000\000\000\b\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\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\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\016\000\000\000\001\000\000\000\000\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000  \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\002\000\000\000\000\000\000\000\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\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\024@\000\000\000\004\000\000\000\b\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\232 \145\004\000\020\000\000\000)\000\bv\129 \000C\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\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\000z\247\175\016\003\136 \145\004\bD\016\000\000I\000\bv\129 \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\016\001\000(\130\001\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\011\164\130D\016\002X\000\000\000\164\000!\218\004\128\001\014\000\000\000\001\000\016\002\136 \145\004\000\132\000\000\000\t\000\bv\129 \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\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\030\189\235\196\000\226\b$A\002\017\132\000\000\018@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\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\030\189\171\194\000\226\b$I\002\016\012\000\000\018@\002\020\161H\000\024\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\020\144\000\018\r\003\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\255\194\005\022\144\164\018\015C\156s\143\194\000g\1690\002F\148@\173\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\239\252 Qi\nA \244)\1998\252 \006z\147\000$iD\n\221\239\251\255\000\004\000\002\000\000 \000@\000\000\000\000\000\004\000\000\000\000\000\000{\254\255\192\001\000\000\128\000\b\000\016\000\000\000\000\000\001\000\000\000\000\000\000\030\255\191\240\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\000\000\000\000\004!C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\bP\192\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000B\0200\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\016\133\012\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\175\224\241E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(g\255\235\248 Qi\nA\000\198)\1998\252 \006z\131\000\004iD\n\024\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\173\192\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\000\128\000\000\003\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\002\001\000\000\000\000\000\000\000\000\000\002\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\007\255\235\248 Qi\nA \212)\1998\252 \006z\131\000$iD\n\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\016A!\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\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\007\255\235\248 Qi\nA\000\198)\1998\252 \006z\131\000\004iD\n\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\127\254\191\131\197\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\159\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\030\255\191\240\000A\000 \000\002\000\004\000\000\000\000\000\b@\000\000\000\000\000\000\016\133\012\000\000@\000\000\000\192\000\002\024\004\000\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\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\134\001\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\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\007\175j\240\000\016\000\b\000\000\130\001\024\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\136\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\000\000\002\000\007\175j\240\000\016\000\b\000\000\130\001\024\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 \000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\0000\000\000\004\001\000\000\000\128\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\002 \000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\130\005\022\144\164\018\rB\156s\143\194\000g\1680\002F\148A\161\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\004\002\001\000\000\000\000\000\000\000\000\000\002\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\007\255\235\248 Qi\nA \212)\1998\252 \006z\131\000$iD\n\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\001\bP\192\000\004\000\004\000\012\000\000!\128@\000\000!\000\000\000\000\000\012@\000\000\000\000\000\000\128\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\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\000R@\000H4\014\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\001\255\251\255\b\020ZB\144H=\014q\206?\b\001\158\164\192\t\026Q\002\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\031\255\191\240\129E\164)\004\131\208\167\028\227\240\128\025\234L\000\145\165\016+p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\251\255\b\020ZB\144@1\138q\206?\b\001\158\164\192\001\026Q\002\183\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\002\000\000\000\012_\255\191\240\129E\164)\004\003\024\167\028\227\240\128\025\234L\000\017\165\016+p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\251\255\b\020ZB\144H5\nq\206?\b\001\158\164\192\t\026Q\002\183\127\254\255\194\005\022\144\164\016\012b\156s\143\194\000g\1690\000F\148@\173\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@ \016\000\000\000\000\000\000\000\000\000 \000\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\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\239\252 Qi\nA \212)\1998\252 \006z\147\000$iD\n\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\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\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\016\133\012\000\000@\000@\000\192\000\002\024\004\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\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@ \016\000\000\000\000\000\000\000\000\000 \000\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\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\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\016\133\012\000\000@\000@\000\192\000\002\024\004\000\000\002\016\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\000\000\000\000\000\004\t\018\224\006\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000\004\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\b\000\000@\128\000\000\000\000\000\000\000\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\128\000\004\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\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\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\002\000\000\016 \000\000\000\000\000\000\000\001\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\b\001\000\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\000\016\000\000\000\b\000\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\000\000\004\024\001\000\000\128P\000\000\000\000\000\000\002\000\000\016 \000\000\000\000\000\000\000\001\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\004\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\000\000A\128\016\000\000\005\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\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\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\001\014\000`\000\000\016\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\001\128\000\000@\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000 \001\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\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\001\014\000`\000\000\016\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000A\128\024\000\000\004\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\001\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\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\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\006\000`\000\000\016\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000A\128\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\002\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\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\016\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\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\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\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\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\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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")
+    (194, "\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\012\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\0000\000\000\000\000\000\000\000\000\000 \000\002\000A\128\000\000\129\012\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\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\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\002\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\240\000\000\000\000\000\000\000\001\235\218\188\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\149\r\000(\194\rP@\200e\002\024\004\208\b\135x\018\000\0049\144\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\000F\180p\000\001\0001\000\003\000\020\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\017\173\028\000\000@\012@\000\192\005\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004+C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004+S\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\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\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\016\000\000\000 \128\000\004\001\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\001\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\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\002\004\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\001\000\000\000\002\000\000\000@\016\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\004\000\000\000\000\b\000\000\129\000\000\000\000\000\000\001\000\000\000\000\000\000\000\1940\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\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\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\000\000\000@\000\000\000\000\000\000@\000\000\000\130\000\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\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\030\189\171\192\000A\000 \000\002\000\004\000\024\016\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\000A\000\000\000\002\016\000\000@\016\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\001\235\218\188\000\004\016\002\000\000 \128@\001\129\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\030\189\171\192\016A\000 \000\002\b\004\000\024\016\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\000\000\000\000\000\000\001\235\218\188\000\004\016\002\000\000 \000@\001\129\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016B!\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\000\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000@\000\000\000\000\000\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\232\004'\199p\000\000\000\000\000@\000\000\000\128\000\000\016\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\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\159\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\178\000\t\225\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\027 \000\158\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\017\004\216D\176\000\000\005\000 \000\000\004\200\000'\131p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\000\000\000\000\000\000\004@\000\000\004\000\000\000@\b\000\000\0000\000\t\160\196\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000@\016\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\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\016\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\000\000\128\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\003\175j\208\000\016\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\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\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\018\129\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\1800\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\1810\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\000@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012^\189\171\192\000A\000 \000\002\b\004\000\024\016\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\000\000\000\000\000\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\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\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000\000\000\000\016\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\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\001\000\000\000\003\000\000\000@\016\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\016\000\000\000 \000\000\004\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\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\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000 \000\000\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\000\000\000\b\000\030\189\171\192\000@\000 \000\002\b\004`\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\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000\000\004\001\000\000\000\128\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\007\175j\240\000\016\000\b\000\000\130\001\024\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\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\000 \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\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\246\173\000\001\004\000\128\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000A\000\000\000\002\016\000\000@\016\000\000\b\000\000\000\000\000\000\007\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\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\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\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\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\001\000\000\000\002\000\000\000@\016\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\000\004\016\b`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\b\000\000\003\000\004\024\020\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\007\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\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\001I\000\001\000\196(\0068\200\000\006\018\001\000\000\001\004\002\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\149\029\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\016A!\128\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\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\000\000\002@\000\000\196\1936Y,\000\000\001@\b\016\000\001\186\001\tQ\220\000\000\000\000\000R@\000@0\n\001\1422\000\001\132\128@\000\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\192\129\006I(\000\000\001\000\000\016\000\001\n\001\b\016\024\000\000\000\000\000\016\000\000\000 \000\000\004\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\bg\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\000\000\000\000\000\000\000\000\000\000\000\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\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000\000\001\004\130\025\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001\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\000R@\000H4\n\001\1423\000\000\132\128@\000\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\192\129\022I(\000\000\001\000\000\016\000\001\170\001\b\193\024\000\000\000\000\000\016\000\000\000 \000\000\004\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\b`\000\000\002@\000\000\192\001\022\001(\000\000\001\000\000\000\000\001\162\000\b\193\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\0000\001\004\002\024\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\003\004\025$\176\000\000\004\000\000@\000\006h\004$D`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\016\012\194\128o\140\192\000a \016\b\128\016@!\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\001I\000\001\000\204(\006\248\204\000\006\018\001\000\136\001\004\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\128\000\000\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\016A!\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\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@\"\000A\004\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\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\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\128\000!\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\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\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000@\020\144\000\018\r\002\128c\140\192\000! \016\000\000\016@!\128\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\002\024\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\128\004\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\001\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\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\t\000\000\003\000\004X\020\160\000\000\004\000\000\000\000\006\136\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\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\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\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\0200\000\001\000\017\000\003\016\144\b`\017\000 \b@\000\000\000&C\023\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\004\000\128\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\0000\001\000\004\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\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\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\128\000\000\000\000\000\000\000^\189\171\192\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\000\000\000\000\001\235\218\188\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\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\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(g\175j\240\000\016\000\b\000\000\128\001\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\b\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\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\225\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\000@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\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\246\175\000\001\000\000\128\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\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\000\030\189\171\192\000@\000 \000\002\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000@\n0\130D\016\003\024@\000\001$\000!\218\004\128\001\012\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\b@\000\001\000@\000\000 \000\000\000\000\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\235\218\180\000\004\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\001(\016\000\000\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\014\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\128\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\b\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\0008A\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\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\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\000\000\000\000\000\000@\000\000\000\130\000\000\016\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\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\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\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\016\000\000\000!\000\000\004\001\000\000\000\128\000\000\000\000\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\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\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\128\001\004\000\128\000\b\000\016\000\003\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\246\175\000\001\004\000\128\000\b\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\016\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\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\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\004\000\000\000\012\000\000!\128@\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\128\000\000\016\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\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\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\016\000\018\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\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\175j\208\000\016@\b\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\016\004\000\000\002\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\002\000\000\000\000\000\000\000\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\001\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\030Q\134\134\000\000\000$\000\004\012L\019m\146\192\001\000T\000\129 \000\027\160\016\020\029\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\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\t\000\000\003\017\004\216T\176\000\000\005\000 \000\000\006\136\000\005\007p\000\000\000\000\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@\016H4\n\001\1423\000\000\132\128@\b\000A\000\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\016\000\000\000\000\000\000\000@\136\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\007\255\235\248 Qi\nA\000\196)\1998\252 \006z\131\000\004iD\n\025\255\250\254\b\020ZB\144H5\011q\206?\b\001\158\160\192\t\026QB\134z\246\175\000\001\020\144\128\018\r\002\144c\140\192\000! \016\002\000\016@!\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\144\000\016\012B\128c\140\128\000a \016\000\000\016@!\128\000\000\000\000\005$\000\004\003\000\160\024\227 \000\024H\004\000\000\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\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\000\000\000\000\001I\000\001\000\192(\0068\200\000\006\018\001\000\000\001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\168\004\005\007p\000\000\000\000\000@\000\000\000\128\000\000\016\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\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\017\004\216D\176\000\000\005\000 \000\000\006\136\000\005\007p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\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\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\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\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\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\191\240\241E\164)\004\003\024\183\028\227\241\128\025\234L\000\017\229\028kp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\159\255\175\224\129E\164)\004\131P\167\028\227\240\128\025\234\012\000\145\165\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\191\240\129E\1649\004\195P\183\028\227\241\1289\234L\001\209\229\029kp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000A \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\020\144\004\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\002\000\000\016\004\000\000\002\000\000 \000\000\128\000\000\000\000\000\000\016\000\000\000\000\128\000\004\001\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\136\000\000\000\000\000\000\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\002\000\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\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\136\000\000\000\000\000\000\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\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\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\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\127\254\191\130\005\022\144\164\018\rB\156s\143\198\000g\1680\002F\148@\161\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\001\255\251\255\015\020ZB\144@1\139q\206?\024\001\158\164\192\001\030Q\198\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\255\250\254\b\020ZB\144@1\138q\206?\024\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\002\001\000\000\000\000\004\000\000\000\000\002\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\007\255\235\248 Qi\nA\000\198)\1998\252`\006z\131\000\004iD\n\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\003\019\004\219d\176\000@\021\000 H\000\006\232\004\005\007p\000\000\000\000\000\000\000\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\b\004\000\000\000\000\016\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\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\127\254\191\130\005\022\144\164\016\012b\156s\143\198\000g\1680\000F\148@\173\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\001\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A \134\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\001\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\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\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\192\000\002\024\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\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\001\000\000\000\002\000\000\000@\016\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\128\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\175j\208\000\016@\b\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\127\254\191\130\005\022\144\164\018\rB\156s\143\198\000g\1680\002F\148@\173\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\016\b\004\000\000\000\000\016\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\031\255\175\224\129E\164)\004\131P\167\028\227\241\128\025\234\012\000\145\165\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\016\000\016\0000\000\000\134\001\016\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\b\016Z@\144@1\n\017\2063\b\001\158\160\192\001\024Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\000\000\000\000\001\000\001\255\251\255\b\020ZC\144L5\011q\206?\024\003\158\164\192\025\030Q\214\183\000\000\000\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\235\248 Qi\nA\000\198-\1998\252 \006z\131\000\004yG\026\024\000\000\000\000\000\000\000\000\b\004\000\000\000\000\000\000\000\000\000\b\000\000\000\000\127\254\191\130\005\022\144\164\016\012b\220s\143\194\000g\1680\000G\148q\161\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@ \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\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002G\148q\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\235\248 Qi\nA \212-\1998\252 \006z\131\000$yG\026\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\000\000\000\000\000@\000\127\254\191\130\005\022\144\164\016\012b\220s\143\194\000g\1680\000F\148P\161\128\000\000\000\000\000\000\000\000\128@\016\000\000\000\000\000\000\000\000\128\000\004\000\007\255\235\248 Qi\nA\000\198-\1998\252 \006z\131\000\004iE\n\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\000\000\000\000\000\000\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\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\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\003\000\016\b`\016\000\000\b\000\000\000\000\004\000\000\000\000\000\000\000\000\004\0000\016\000\000\000\000\000\b\000\000\000 \000\000@\005\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\192@\000\000\000\000\000 \000\000\000\128\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZC\144L5\nq\206?\b\003\158\160\192\t\026Q\018\135\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\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\001\255\250\254\b\020ZC\144L5\nq\206?\b\003\158\160\192\t\026Q\018\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\000\000\000\000\000\000@\000\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\b\004\000\000\000\000\016\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\031\255\175\224\129E\164)\004\131P\167\028\227\241\128\025\234\012\000\145\165\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\030\255\175\224\000E$)\004\003\000\164\024\227\224\000\024H\004\000\000%\016(`\000\000\000\000\001I\000A \208(\0068\204\000\002\018\001\000 \001\004\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\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\007\191\235\248\000\017I\nA\000\192)\0068\248\000\006\018\001\000\000\tD\n\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\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\000z\246\175\000\001\004\000\128\000\b\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000\000\000\000\000\000\000\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\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000\000\134\001\000\000\000\128\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\001\000\000\000\002\000\000\000@\016\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\128\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\246\173\000\001\004\000\128\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\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\000\000\000\000\000\000\000\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\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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{\254\191\128\001\020\144\164\016\012\002\144c\143\128\000a \016\000\000\148@\161\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\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\004\012\012\016l\146\192\001\000P\000\001 \000\024\160\016\016\017\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\004\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\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\001\000\001\000\003\000\000\b`\016\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\b\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\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\002\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\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\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\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\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235\218\180\000\004\016\002\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\001\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\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\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\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\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\0000\001\000\134\001\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\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\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\030Q\134\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\031\255\175\224\000A\000 \000\002\000\004\000\000\192\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\000\000@\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000_\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\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\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\004\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\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\255\250\254\b\020ZB\144@1\nQ\206?\b\001\158\160\192\001\026Q\002\134z\246\175\000\001\020\144\128\016\012\002\144c\140\128\000a \016\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\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\005\255\250\254\b\020ZB\144@1\nQ\206?\b\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\235\248 Qi\nA\000\196)G8\252 \006z\131\000\004iD\n\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\000\000\000\000\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\b\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\016\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\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\127\254\191\128\001\004\000\128\000\b\000\016\000\003\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\023\255\235\248\000\016@\b\000\000\128\001\000\0000\000\000\002\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\127\254\191\128\001\004\000\128\000\b\000\016\000\003\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\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\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000\000\001\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235\218\188 \014 \130D\144!\000\192\000\001$\000!J\020\128\001\140\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\016\001\000(\130\001\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\002\000\000\000\000\000\128\000\b\000\000\000\000\000\000\128\002\002\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\002\000\000\000\000\000\000\000\136\000\000\000\000\000\000\128\002\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000\224\b$A\002\016\012\000\000\018@\002\020\129H\000\024\192\000\007\175j\240\0008\002\b\000@\132\003\000\000\004\144\000\133 R\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\001\000\016\002\136 \145\132\000\004\000\000\000\t\000\bv\129 \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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\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\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\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\030\189\171\192\000\224\b$\001\002\016\012\000\000\018@\002\020\129H\000\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\001\235\218\188\000\014\000\130\000\016!\000\192\000\001$\000!H\020\128\001\132\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\002\000\000\000\000\000\000\000\b\016\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\000\016\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\162\b$A\000!\000\000\000\n@\002\029\160H\000\016\224\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\002\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\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\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\030\189\171\192\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\000\000\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\000z\246\175\000\001\000\000\128\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\016\000\000\004\000@\n \130D\016\000\024\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\018\000\000\000\000\000\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\000\000\000\000\000\000\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\006\000\000\000\000\001\000\000\000\002\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n \130D\016\001\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\011\160\130D\016\000P\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\162\b$A\000!\000\000\000\n@\002\029\160H\000\016\224\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\002\135h\018\000\0040\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\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\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\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\004\000@\138 \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\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\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\128\000\000\000@\004\b\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\001\128\000\000\000\000@\000\000\000\128\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\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\002\016\000\000\000\164\000!\218\004\128\001\014\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000(v\129 \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\128\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\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\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\002\128B\004\000\162\b$A\000\001\128\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\000`\000\000\000\144\000\135h\018\000\0040\000\000\000\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\016\002\136 \145\004\000\006\000\000\000\t\000\bv\129 \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\016\001\000(\146\t\016@\t@\000\000\002\144\000\135h\018\000\0048\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000\161\218\004\128\001\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\002\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000`\000\000\000\144\000\135h\018\000\0040\000\000\000\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\016\002\136 \145\004\000\006\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\016\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\b\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\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\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\000\000\b\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\b\016\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\000\000\000\000\000\000\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \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\006\016\000\000\000\001\000\000\000\002\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\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\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\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\186\b$A\000\005\000\000\000\n@\002\029\160H\000\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\030\189\235\196\000\226\b$A\002\017\004\000\000\018@\002\029\160H\000\016\192\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\004\000@\n \128D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\233 \145\004\000\150\000\000\000)\000\bv\129 \000C\128\000\000\000@\004\000\162\b$A\000!\000\000\000\002@\002\029\160H\000\016\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\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\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\004\000\000\000\000\000\000\007\175z\241\0008\130\t\016@\132a\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\007\175j\240\1288\130\t\018@\132\003\000\000\004\144\000\133(R\000\0060\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\005$\000\004\131@\224\024\2270\000\bH\004\000\128\004\016\b`\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\003\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\191\240\129E\164)\004\131\208\231\028\227\240\128\025\234L\000\145\165\016+p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\251\255\b\020ZB\144H=\nq\206?\b\001\158\164\192\t\026Q\002\183{\254\255\192\001\000\000\128\000\b\000\016\000\000\000\000\000\001\000\000\000\000\000\000\030\255\191\240\000@\000 \000\002\000\004\000\000\000\000\000\000@\000\000\000\000\000\007\191\239\252\000\016\000\b\000\000\128\001\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\001\bP\192\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000B\0200\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\016\133\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\004!C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\235\248<Qi\nA\000\198)\1998\252 \006z\131\000\004iD\n\025\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016+p\000\000\000\000\000\000\000\000 \016\000\000\000\000\000\000\000\000\000 \000\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\000\000\000\000\000\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\128@\000\000\000\000\000\000\000\000\000\128\000\000\003\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\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\026Q\002\183\000\000\000\000\000\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\004\0038\160\027\2270\000\024H\004\002\160\004\016H`\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\127\254\191\131\197\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\159\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\183\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\255\175\224\241E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(g\255\235\248 Qi\nA\000\198)\1998\252 \006z\131\000\004iD\n\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\191\239\252\000\016@\b\000\000\128\001\000\000\000\000\000\002\016\000\000\000\000\000\000\004!C\000\000\016\000\000\0000\000\000\134\001\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\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\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000 \000\000\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000\000\000\000\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\012\000\000\001\000@\000\000 \000\000\000\000\136\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\128\000\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \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\255\175\224\129E\164)\004\131P\167\028\227\240\128\025\234\012\000\145\165\016h`\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\000\001\000\128@\000\000\000\000\000\000\000\000\000\128\000\000\003\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\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\026Q\002\183\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\0200\000\001\000\001\000\003\000\000\b`\016\000\000\b@\000\000\000\000\003\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\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\018\r\003\128c\140\192\000! \016\002\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\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\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\127\254\255\194\005\022\144\164\018\015C\156s\143\194\000g\1690\002F\148@\173\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\239\252 Qi\nA \244)\1998\252 \006z\147\000$iD\n\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\127\254\255\194\005\022\144\164\016\012b\156s\143\194\000g\1690\000F\148@\173\192\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\000\128\000\000\003\023\255\239\252 Qi\nA\000\198)\1998\252 \006z\147\000\004iD\n\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\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\223\255\191\240\129E\164)\004\003\024\167\028\227\240\128\025\234L\000\017\165\016+p\000\000\000\000\000\000\000\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\b\004\000\000\000\000\000\000\000\000\000\b\000\000\0001\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\255\191\240\129E\164)\004\131P\167\028\227\240\128\025\234L\000\145\165\016+p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\251\255\b\020ZB\144H5\nq\206?\b\001\158\164\192\t\026Q\002\183\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\255\191\240\129E\164)\004\131P\167\028\227\240\128\025\234L\000\145\165\016+p\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!C\000\000\016\000\016\0000\000\000\134\001\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\191\240\129E\164)\004\131P\167\028\227\240\128\025\234L\000\145\165\016+p\000\000\000\000\000\000\000\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\b\004\000\000\000\000\000\000\000\000\000\b\000\000\0001\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\255\191\240\129E\164)\004\131P\167\028\227\240\128\025\234L\000\145\165\016+p\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!C\000\000\016\000\016\0000\000\000\134\001\000\000\000\132\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\001\002D\184\001\128\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\b\000\000\002\000\000\001\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\002\000\000\016 \000\000\000\000\000\000\000\001\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\001\002\000\000\000\000\000\000\000\000\016\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\000\000\000\000\000\000\000\000\000\000\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\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\128\000\004\b\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\002\000@\000\000\000\000\000\000\b\000\000@\128\000\000\000\000\000\000\000\004\000\000\000\002\000\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\000\001\006\000@\000 \020\000\000\000\000\000\000\000\128\000\004\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\001\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\004\000\000\000\000\016\000\000\000\000\000\000\000\000\016`\004\000\000\001@\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\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\000C\128\024\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\001\006\000`\000\000\016\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000A\128\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\000\000\000\000\000\000\000\000\000\000\000\004\024\001\000\b\000@\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\024\001\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\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\000\000\000\000\000\000\000\000\000\000\000\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\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\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\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000C\128\024\000\000\004\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\006\000\000\001\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\001\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000A\128\024\000\000\004\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\001\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\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\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\016\000\000\000\000\000\000\000\128\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\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\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\b\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\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\b\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\b\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\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\b\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\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\001\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\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")
   
   let action =
-    ((16, "\002\130\000\151\000\000\000\000\020t\000\151\000\000\000\000\000\015\000\000\000\000\000\000\001\015\000\000\000\000\000\000\002\130\000\000\000\005/\164\000\000\022\016\022,\000\000\000\000?\220\022\016\022\016\000\000\000\000M\188N \022\016\000\000\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\000\191\000\143\022\016\000\000\022\016\000\000\000\000\000\000\022\016\000\000\022\016\000\000@\180^\130\022\016\000\000\000\000VF^\194\022\016\000\000\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\000\159\000q\022\016\000\000\022\016\000\000^\208\022\016\000\000\000\000\022\016\000\000O,^\236\022\016\000\000\000\000\022\016\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\000\006\000\000\000\017\000\017\000\000\000\000\000\000\000\000\000\159\000\000\000\000\000#\000\017\000\000\000#\000\000\000\000\000\017\000\164\000\160\000\017\000r\000\000\000f\000R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\000\017\000\000\000\136\002\220\000\017\000\000\000\142\001f\000\000\000\000\000\000\000\208\022\016\000\000\022\016\000\017\000\232\022\016\000\000\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\0018\002v\022\016\000\000/\164O,5\222\000\0005\222\000\000\000\000\000\000\000\017\000\0005\222\000\0004\194\002\2485\222\002\236\000\000\000\017\007|L\148\000\000\000\000VtW6\000\000Zb\000\000W\206L\148\029J\029JZbL\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Xf\029J\000\000\000\000XfXfXf\000\000Xf\000\006\000\000\000\000L\148Xf\000\000\000\000%\128\000\017\000\000\023\174\029JL\148\000\000&\208L\1482\136L\1482\166L\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\030L\148\000\000B:L\1483\194L\1484\222L\148\000\000L\148\000\000L\1485\250L\1487\022L\14882L\1489NL\148:jL\148;\134L\148\002\240L\148\000\000\000\000\000\000\000\000\000\000L\148B\194L\148C\222L\148DfL\148E\130L\148<\162L\148=\190L\148>\218L\148F\nL\148G&L\148\000\000L\148G\174L\148H\202L\148IRL\148\000\000L\148JnL\148J\246L\148\000\000\000\000L\148\000\000\002\196\000\000\000\000\000\017\000\000\000\000\000\000\003\006\000\000\003\\\000\000\000\020L\148\000\000\000\020\000\000\000\000\000b/\164\000\000\026\016\022\016\000\000\0032_\018\022\016\000\000\000\000Y<_(\022\016\000\000\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\003\148\0048\022\016\000\000\022\016\000\000\022\016\000\000\022\016\000\000\005\144_,\022\016\000\000\000\000Yd_R\022\016\000\000\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\004:\005Z\022\016\000\000\022\016\000\000_\150\022\016\000\000\000\000\022\016\000\000O\244_\210\022\016\000\000\000\000\022\016\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\007\212\000\017\005\004\022\016\000\000VF\000\017\005 \022\016\000\000\000\000\022\016\000\000\022\016\000\000\022\016\000\000\005X\005\188\022\016\000\000Yd5\222\000\000\000\000\005l\022\016\000\0005\222\000\000\000\000:N8\022\000\000\001f\0060\000\017\005\132\006V;j;j\000\000\000\000\000\000\000\195JR;j\001X=\162\000\000\000\000\000\000\006h\006L\002\162\006r;j\000\000\000\000\005\192\000\000\005\208\006\166;j\005\222\000\000\000+\000\000\007|\000\000\000\000\002\004C\194\000\000\000\000\000\000\006\n\007\b\000\000\007,\000\000(P\001f5\222\006P\022\016\000\000^\1305\222\006^\022\016\000\000\000\000\000\000\000\017\007T\000\000\000\000\000\000\000b\000\000\000\000\029J\006p\000\000\006tZb+\214\000\000Z\242\029J\006x\000\000\006~*\164+\214L\148\006\132\000\000\029J\006\132\000\000\006\136k$+\214L\148\000\232L\148\006\134\000\000\000\000+\214+\214\000\000\000\000\000\000\000\000).\000\000\000\000\000\000\000\000\000\000Xf\000\000\000\000\001(\007NL\148+\214\000\017\000\000Xf\000\000\000\000Xf\000\000\000\006\000\000*Vk$\000\000\000\000\024x\000\017\000\000\023\174\023\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000Xf\000\000\000\000\002\138\028.\023\174Xf\000\000\000\000Xf\000\000\000\006\000\000Zb\000\000\000\000kt\000\017\000\000\023\174\0272L\148\000\000L\148\000\000\000\000\000\000\000\000\000\000\006\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000?<L\148shL\148\006\192L\148\000\000L\148s\206L\148t0L\148t\194L\148u\016L\148u\162L\148v\004L\148\000\000L\148vhL\148v\196L\148w(L\148\000\000L\148w\132L\148w\232\002\194\025.\000\000L\148\006\148\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\003\002\026\174\000\000\000\000\006\156\000\000L\148\006\156\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000#\202\000\000\006\204+\214\006\212+\214\000\000\000\026\000\000\000\000.\024L\148AVL\148AzL\148[\000L\148i\000L\148i\128L\148xDL\148xLL\148\000\000L\148x\168L\148x\218L\148y^L\148\000\000L\148y\186L\148y\236\000\000\006\162\000\000\002x,\194\000\000\002\2181\200+\214\000\000\003\214-\174\000\000\000\000\000\000\000\000\007.\000\000\000\000\000\000\006\172\000\000\006\176\000\000\000\000\006\186\000\000\000\000\006\194\000\000\000\000\006\206\000\000\000\000\000\000\000\000\000\000\000\000\006\220\007\164\000\000\000\000\006\222\000\000\000[[\202\007\184L\148\007\130\000\000\000\000Zb\000[\000\000\007\b\000\000\007\bP\218\000\000\029J\007\016s\006\000\000\007\236\000\000\029J\007\022.\164\000\000\029J\007\024/\192\000\000\007\022\000\000\000\000\b\020\000\000\007\"\022\016\000\000^\2365\222\0070\022\016\000\000\000\000\002\0005\222\000\000\002\000\000\000\000\000\007>\000\000\002\162\007:\022\016\000\000\000\000\001p/\164\000\000/\164\000\000\007(\000\000\001p\000\000\019\152+V\022,\000\000\007\166\022:\022,\000\000\000\000MdO\180\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007r\007\162\022,\000\000\022,\000\000\022,\000\000\022,\000\000\b\208P:\022,\000\000\000\000M\142Q\170\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007x\007\166\022,\000\000\022,\000\000Q\194\022,\000\000\000\000\022,\000\000\022,Q\210\022,\000\000\000\000\022,\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007\226\000\017\007N\022,\000\000\022,\000\017\007P\022,\000\000\000\000\022,\000\000\022,\000\000\022,\000\000\007\128\007\174\022,\000\000/\164\000\000\007`\000\000\004T/\164\000\000\000\000\004T\000\000\000\000\022:5\222\007Z\022,\000\000\000\000\000\000\000\026\000\000\000\000\000\031\000\026\000\000\000\000\000\000\bT\000\000\007\1845\222\007b\022,\000\000\030\1865\222\007h\022,\000\000\000\000\030,\022,\000\000\t:R>\022,\000\000\000\000N\000RV\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007\154\007\204\022,\000\000\022,\000\000\022,\000\000\022,\000\000\011\212Rd\022,\000\000\000\000N\006R|\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007\178\007\224\022,\000\000\022,\000\000R\150\022,\000\000\000\000\022,\000\000K\244R\176\022,\000\000\000\000\022,\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\t\018\000\017\007\140\022,\000\000K\244\000\017\007\186\022,\000\000\000\000\022,\000\000\022,\000\000\022,\000\000\007\254\b4\022,\000\000Md5\222\007\220\022,\000\000\000\000\nr5\222\007\222\022,\000\000M\1425\222\007\224\022,\000\000\000\000\000\000\000\000\000\000\000\000\b\184L\148\007\244 \164\bt\000\000\b\200L\148\b\006\b\208/\164\000\000\000\000\000\000/\164\000\017\000\000\002\224L\148\b\250\000\000\000\017\000\000\001<\b\252\000\000\t.\b\208\000\017\b\024\b\232;j\b\"\001\154\000\000L\148\t\020\000\000\000\000\000\000\b\248;j\b,\t\030\000\000\003\186\003\000L\148\t \000\000\t\"\000\000(P\000\017\004>L\148\t$\000\000\t&\000\000\000\017\004lL\148\t,\000\000\t4\000\000\0013\br\t\n\"\212\000\000\\Z\029J\bJN\254\000\000S\144\000\000\t>\000\000\003\002\t$L\148\b\232\000\000\t.L\148\b\242\000\000\001p\000\000\t\n\t\n\029J\bv\000\000\b\134l4l4\000\000\000\000\000\000\000\000\000\000\000\000Xf\000\000\000\000Xf\000\000\000\000Xf\000\000\000\006\000\000l4\000\000\000\0000\220\000\017\000\000\023\174\b\146\000\000L\148\b\148\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000T\020L\148\000\000L\148\000\000\b\156\000\000\000\020\000\000\000\000\000\000\000\000\000\000`\204L\148a4L\148\b\202L\148\000\000L\148bPL\148b\184L\148c\212L\148d<L\148eXL\148e\192L\148\000\000L\148f\220L\148gDL\148h`L\148\000\000L\148h\200L\148i\228+\214\b\178\000\000\000\000\003\002\000\000\003\002\000\000\019\152\t\n\t\n\000\000\000\000\000\000\000\003\000\000\000\000\000\000\t\138L\148\b\194 \164!\182\000\017\t\178\000\000\t\152T\216\t\186T\216\t\188L\148\b\208 \164 \164\001\022\001\022\004\n\001\226\001\022\000\000\000\000\004\012\004\026\000\000\004\024\n\"\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\t\194\000\000\t\196\000\000\000\000\n\004\t\170L\148\b\224\t\208\000\000\t\212\000\000\t\020\000\000\t\194\023\174\b\246 \164\000\000\000\000\000\000\007\136\000\000\000\000\003\002\000\000\tx\000\000\015\018\0012\000\000\015\018\000\000\000\000#\254\000\000\011\182\000\000\000\000\012\014\000\000\015\018\000\000\t\204\023\174\t\000\t\240\000\000\0032\000\000\t\198\000\017\t\012\t\220;j\t\024\001\166\000\000L\148\n\012\000\000\n\016;j\tF\nD\000\000\004vL\148\nH\000\000\nJ\000\000(P\000\017\004\128L\148\nP\000\000\nT\000\000\000\000\000\000\012\014\000\000\000\000\006\016\000\000\t\n\000\000\0032\000\000\000\000\004\232!\182\000\000\004\232\000\000\000\000\tj\000\000\000\020\001\128 \164\000\000\006\006\0007\006\006\000\000\0007\000\000\t\n\000\000\t\n\000\000\000\000\000\000\tf\000\000\000\000\tr\000\000\005\018\007\136\0007\006\006\000\000\000\000\000\000\0007\000\000\t\n\000\000\005\018\000\000\000\000\026\146\n\130\019\152\000\000\023t\000\000\n\140\019\152\000\000\000\000\n\140\000\000\000\000\tr\000\000\000\000\tx\000\000\0050\t\n\000\000\0050\000\000\000\000\t\246\000\000\006\016\000\000\t\n\000\000\000\000\000\000\021\024Up\000\000\nj\000\000\021\024\000\000\np\000\000\nt\000\000/\164\000\017\003\132\000\000L\148\n|\000\000\0122\nL\000\017\t\154\nn;j\t\164\005\002\000\000L\148\n\156\000\000\005<\000\000L\148\n\162\000\000(P\000\017\005b\000\000L\148\n\164\000\000\005@\021\024\000\000\000\017\005|\000\000L\148\n\168\000\000#\254\n\174\000\000\000\000\000\000\n\146\023\174\t\200\n\184\000\000\007\184\000\000\n\136\000\017\t\210\n\164;j\t\224\005\196\000\000L\148\n\208\000\000\005\198\000\000L\148\n\210\000\000(P\000\017\005\206\000\000L\148\n\220\000\000\005@\000\000\000\000\t\250\000\000\0272\nx\000\000\000\000\000\000\n\134\000\000\000\165\001p\000\000\019\152\n\228\000\000\000\000L\148\n6\t\n\000\000\n\012\000\000\0013\000\000/\164\000\000\000\000\001\182\019\152\000\000\019\152\000\000\t\250\000\000\001\182\000\000L\148\002\212L\148\000\000L\148\000\000\t\252\000\000\002\212\000\000L\148\002\212\t\254\000\000 \164\003\236 \164\000\000 \164\000\000\n\002\000\000\003\236\000\000L\148\002\212\n\006\000\000/\164\005\216/\164\000\000/\164\000\000\n\018\000\000\005\216\000\000L\148\002\212\n\028\000\000\000\000\030\202\000\000\000\151\n\190\000\000\000\000\n\150]6\000\000\000\000\000\000\000\000\000\000\000\000\nj\006\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@]6\000\000\001\b\003P\nl\000\151\000\000\000\000\nv\000\151\000\000\000\000\000\000\000\000\002\222\003P\000\000\000\000\000\000\000\000\n\220\000\000\000\000\000\000\000\000%\128'\208\000\000YB\000\000]6\000\000\004\154]6\000\000\002\196\001H\001H\000\000\005\150\001H\000\000\nV\000\000\000\000\000\000\000\000\n\226\000\000).\000\000+V]6\000\000\003\224]6\000\000\n\230\000\000]6\n\232\000\000o\146]\184\n\236\000\000\n\246\000\000p l\244]6\000\000\000\000\nr]6\n\252\000\000\011\000\000\000\011\004\000\000/\164\000\000\005\206/\164\000\000\n\132\022\020\000\000]6\011\020\000\000\004\166]6\000\000\005\b]6\000\000\004\132\011\154\000\000\011\158\000\000]\184]6\n\154\000\000\000\000\000\000\000\000\000\000\000\000\011H\000\000p\130]6\011\\\000\000\011b\000\000q\016m\004]6\n\220]6\011h\000\000\011j\000\000\011l\000\000]6\011\022\000\151\000\000\000\000\006`]6\000\000\004\132\000\000\011v\000\000]6\011~\000\000qrn\014]6\n\250]6\011\136\000\000\011\140\000\000\011\142\000\000j\134\022\020\000\000\022\020\000\000]\184]6\011\012]6\011\150\000\000\011\152\000\000\022\020\000\000np\000\000\000\000\006j]6\000\000\001\128\001\218\001H\011\018\000\000\000\000\001\212\001\212\000\000\000\000\000\000\000\000\005\208\001\212\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000]6\000\000\006z]6\000\000\006\006\002\012\000\151\011\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\170\000\000\011\172\000\000]6\011\174\000\000r\000]6\011\178\000\000\011\184\000\000]6\011\186\000\000 .\011brbK\244o0\0118\000\000]6\011\206\000\000\011\208\000\000\011\160 .]6\011\212\000\000]6\011\216\000\000\011\220\000\000]6\011\222\000\000\000\151\011T\000\000\000\000\030\202\000\000\000\000\0044\012T\000\000\000\000\001C\000\000\000\000\000\000L\148\000\000\000\000\000\000\004\132\000\000\000J\000\000\000\000\000\000\006\006/\164/\164/\164\000\000\003`\003`\003`\003`\000\000\000\000\000\000\000\000\000\000\000\000\003\002\019\152\012J\016\148\0012\000\000\000\000\004P\000\000\012\014\000\000+\214\011r\000\000\003\002\019\152\011x\018\022\000\000\003\002\016\148\000\000\000\000\000\000/\164\024\012\000\000\000\000\000\000\011\198\0032\012ZEfEf\000\000\004\136a\234Ef\004\228G\n\000\000\000\000\b\170\012P\000\017\000\000\005\030H\174\000\000\000\000\000\000\000\000\000\000\011\150\012b\t\n\011\152\000\000\000\000\004P\000\000\012\014\000\000\019\242\004\156\000\000\000\000\012L\000\000\000\000\0044\000\000\002\030\000\000\000\000\000\000L\148\000\000\004\132\000\000\003N\000\000\000\000\000\000\007\136\000\000\r\144\005L\r\144\000\000\t\n\r\144\000\000\005\246\000\000\t\n\000\000\t\n\000\000\t\n\000\000\019\242\000\000\000\000\000\000\000\000\000\000\t\n\000\000\005\246\000\000\t\n\000\000,2\000\000\000\000\n\140\011\204\000\151\000\151\012v\001h\000\000\001h\012\158\000\000\012\166\000\000\004\b\000\000\001h\002\196\001h\0110\001h\000\000\000\000\003\170\000\000\0144\000\151\011\166\000\000\011\170\000\000\011\234\000\151\000\151\011\176\000\000\n\140\012\188\000\000\014\234\012\254\012\214\000\225\012\214\000\000\000\000\b\214\000\151\000\000\001D\000\000\000\000\000\007\000\000\011\192\000\000\000\000\000\000\011\254\000\151\000\151\011\196\000\000\000\000\n\140\014\234\012\254\b\214\001D\000\007\011\198\000\000\014\234\012\254\b\214\001D\000\007\011\200\000\000\002\228\000\026\011\232\000\151\011\228\003\138\005\020\012\014\000\151\000\000\012\018\000\151\000\000\012p\000\000\011\246\005\166\011\244\003\138\012|\000\000\011\250\003\138\012\130\000\000\000\000\003\138\000\000\012\134\000\000"), (16, "\014}\014}\014}\014}\014}\014}\014}\014}\014}\014}\014}\014}\014}\014}\017\234\014}\014}\014}\014}\014}\014}\014}\014}\014}\014}\024\206\007\193\030\151\030\155\014}\0071\002\186\030\159\r\241\n\225\r\249\014}\001\138\014}\r\241\r\241\000&\014}\018\030\014}\014}\014a\014}\001\138\"\018\014}\r\241\019\190\0007\000;\014}\014}\014}\002\162\002\226\014}\000*\006\029\000\n!z\000\174\014}\000\178\001\146\014}\014}\n\225\001\182\002\190\001\202\014}\014}\r\241\014}\007\018\014}\001\"\001&\n1\001\142\014}\001\138\014}\014} \230\014}\014}\014}\bR\024\182\001\150\014}\014}\014}\005\026\001\170\014}\014}\014}\014\190\001\154\001\238\014}\014}\014}\014}\014}\014}\011\246\004\245\001\210\014}\014}\000N\012\246\025\030\025F\025V\025~\025\142\025\182\014\194\014}\014}\014}\000\n\020\238\014}\014}\014}\014}\007\193\014}\0052\014}\002\026\000\n\014}\001\234\001\238\014}\014}\t\205!\162\001\242\001\206\000\n\006\029\001\246\001\250\007)\014}\014}\b\193\007)\014}\014\202\007\129\001\214\014}\014}\014}\014}\005y\007A\014}\001\254\014}\b\182\001\222\t\209\014}\014}\014}\000\n\014}\b\170\014}\014}\001\138\014}\006\193\014}\014}\007\137\014}\014}\014}\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\001\230\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\014\137\002\186\014\t\026\002\020>\014\137\018\030\001\138\030\191\030\195\005y\007y\014\137\030\199\014\137\019\190\018F\005y\014\137 \238\014\137\014\137\029*\014\137\012\214\001\150\014\137\002&\026\242\rU\0026\014\137\014\137\014\137\t\221\001\154\014\137\002m\001\146\006\234 \242\005-\014\137\007\170\001\202\014\137\014\137 \246\005-\017b\018J\014\137\014\137\015I\014\137\021r\014\137\bZ\029>\024\254\000\n\014\137\001\138\014\137\014\137\001\150\014\137\014\137\014\137\001\138\002J\026j\014\137\014\137\014\137\001\154\026\002\014\137\014\137\014\137\020B\bf\002^\014\137\014\137\014\137\014\137\014\137\014\137\n\229!\150\rU\014\137\014\137\020\238\012\222\005\161!\154\029B\002\138\000\n\029.\005U\014\137\014\137\014\137\020J\0055\014\137\014\137\014\137\014\137\023\"\014\137\0055\014\137 \254\017.\014\137\023&\001\206\014\137\014\137\023*\015I\015I\029\158\001\150\012\162\015I\025\006\007\030\022&\014\137\005\161\n!\014\137\001\154\000\006\000\"\014\137\014\137\014\137\014\137\017f\002q\014\137\029F\014\137!\006\021v\n\229\014\137\014\137\014\137\000\n\014\137\024\162\014\137\014\137\007Q\014\137\000\n\014\137\014\137\001\138\014\137\014\137\014\137\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\000\n\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\001\138\007i\001\146\006\234\007\201\018\"\0182\018B\025&\005J\t\197\007\201\005Z\007\201\005z\0052!\022\007\201\014\t\007\201\007\201\005\130\007\201\007~\007\185\007\201\026\238\002\157\016\202\001\150\007\201\001\146\007\201\016\206\014\t\007\201\"\014\002*\030\226\001\154\016\210\007\201\002\142\001\138\000.\016\214\030\230\026n + /\007\201\007\201\002\206 3\005\138\007\201\007\201\007\249\001\150\021R\007\201\026z\007\201\007\201\000\n\007\201\007\201\007\201\001\154\026~\014i\007\201\007\201\007\201\001\146\021V\007\201\007\201\007\201\025.\002\214\011R\007\201\007\201\007\201\007\201\007\201\007\201\t\233\005\154\t*\007\201\007\201\000\n\t\165\"\"\017r\000\n\007I\007I\023b\001\150\017v\007\201\007\201\007y\007:\007\201\007\201\007\201\007\201\001\154\007\201\017\"\007\201\021\246\026\138\007\201\n6\007\249\007\201\007\201\t\149!&\004>\004\238\026\142\007)\026\154\017\150\011^!\022\014i\017.!\030\007\201\000\n\t\249\t\225\007\201\007\201\007\201\007\201\005\201\007a\007\201\002\226\007\201\025^\017.\nj\007\201\007\201\007\201\002M\005\n\"w\007\201\007\201\001\138\007\201!\n\007\201\007\201\005\233\007\201\007\201\007\201\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233!\014\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\014\t\007\233\023f\020>\007\233\005\018\014) K O\n\225\007\233\007\233 S\007\233\005\142\027\234\027\242\007\233\018\030\007\233\007\233\030\134\007\233\014\t\001\150\007\233\025f\019\190\014\t\007)\007\233\007\233\007\233\014\t\001\154\007\233\007\233\007\233\007\233\014\134 \011\007\233\007\233\007\233\007\233!.\007\233\007\233 \015\007)\007\233\007\233\007\233\007\233\014Q\007\233!\030\027\250 \018\000\n\007\233\030\134\007\233\011n\007\233\007\233\007\233\007\233\027:\007\233\002}\007\233\007\233\007\233\005\146\014)\007\233\007\233\007\233\020B\"&\007\233\007\233\007\233\007\233\007\233\007\233\007\233\n\245\020F\020Z\007q\007\233\t\193\t\177\017\182\020f\005\250\023\146\014Y\002]\t\181\"2\007\233\007\233\007\233\020\238\007\233\007\233\007\233\007\233\007\233\007\233\022\002\007\233\017.\026^\007\233\017\210\005\182\007\233\007\233\005\198\021\154\005\230\007\233\007\233\023\166\021\186\007\161\n\201\005\238\007\233\027\210\022v\007\233\015I\015I\017.\007\233\007\233\015I\007\233\017.\018\030\007\233\023\194\007\233\017.\022\246\n\245\007\233\031\150\019\190\014A\"N\n\021\023\214\007\233\023\230\007\233\026\226\007\233\007\233\005\246\007\233\007\233\007\233\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\025\234\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\023\150\025\238\024B\024V\016\218\031\162\006\006\024r\025\150\n\005\007\177\016\234\025\242\002~\025\246\027\234\027\242\002\230\025\250\017\242\016\242\029*\017\246\027\222\025\254\017\250\005\254\n\225\006j\023\170\002\134\007\145\018\014\026\n\031\194\n\221\018\030\026\014\002\141\020\238\n\225\002\246\006~\026\018\031\006\019\190\007\153\006\166\023\198\018\030\019\210\018R\0312\031>\007\169\019\214\0222\029\154\019\190\026\022\003\026\023\234\003\030\005\249\000\n\002\154\020\230\019\222\001\138\011\017\011\017\018j\003&\019\226\011\017\006\170\018n\b\130\003.\025\158\006\198\006\238\018r\018v\017\006\017\n\018z\019\230\n\237\006\246\026\026\006\250\019\234\026\030\026\254\0076\015I\024F\024Z\001\146\0072\014\025\024v\b\146\018~\007>\026\"\019\238\019\242\018\130\019\246\026&\000\n\026*\020\n\026.\0262\005\213\0266\007N\020\022\018\138\027\174\029Z\020\238\026:\001\150\007V\026>\014\001\014\017\007Z\031R\014I\007b\0206\001\154\020\238\0141\020:\020\134\005\249\017\014\026B\007Y\018\142\0149\020\138\026F\026J\n\237\018\150\005\249\005\249\011\017\011\017\007\146\005\249\020\146\011\017\018\154\000\n\007\241\007\241\007\150\018\162\003r\007\241\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\007\158\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\r\n\007\178\028\130\r\026\016\218\r:\0045\029\030\007\198\007\222\0045\016\234\rB\002~\007\254\029\142\b\006\002\230\b\030\017\242\016\242\b&\017\246\b6\bB\017\250\bJ\bb\b\174\007)\002\134\t\146\018\014\t\194\nF\n\221\nz\002\186\n\134\n\178\n\186\002\246\011J\001\138\018\030\rJ\011\134\011\150\002\226\011\158\019\210\018R\0312\019\190\011\170\019\214\022z\001\138\011\182\024\"\003\026\011\194\003\030\006\t\001\138\002\154\020\230\019\222\011\222\b*\011\238\018j\003&\019\226\001\146\024&\018n\b\130\003.\014\230\rZ\011\254\018r\018v\017\006\017\n\018z\019\230\012\006\012\030\012&\020\234\019\234\006b\0126\012B\017r\012N\012^\012j\014\"\001\150\017v\b\146\018~\012v\012~\019\238\019\242\018\130\019\246\001\154\000\n\012\146\020\n\001\238\012\186\005\213\012\198\012\235\020\022\018\138\001\238\rN\007)\rR\r\186\r\190\014*\014>\014f\014j\020\238\014~\014\170\0206\000\n\014\222\014\238\020:\020\134\015\002\017\014\015b\007)\018\142\015f\020\138\007)\rv\000\n\018\150\r\134\006\t\r\166\015\206\015\210\000\n\020\146\016>\018\154\r\174\b\001\b\001\001\138\018\162\003r\b\001\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\016R\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\016z\r\182\001\146\031\178\016\218\016~\016\146\016\170\016\190\015\030\016\222\016\234\015.\002~\015N\016\230\016\238\002\230\016\246\017\242\016\242\015V\017\246\001\138\016\254\017\250\017\002\017*\017>\001\150\002\134\017J\018\014\017R\017V\n\221\r\198\001\138\017^\001\154\017n\002\246\017~\017\134\018\030\017\138\017\158\017\166\017\190\017\198\018N\018R\017\218\019\190\015^\019\214\017\226\017\238\018\006\0166\003\026\018\026\003\030\006%\000\n\002\154\019\218\019\222\001\146\017F\018&\018j\003&\019\226\018.\0186\018n\b\130\003.\018>\018Z\001\238\018r\018v\017\006\017\n\018z\019\230\018b\015n\017r\015Q\019\234\007\225\018\202\001\150\017v\018\214\019\014\007\225\007\225\019>\0045\b\146\018~\001\154\0045\019\238\019\242\018\130\019\246!\138\000\n\019\182\020\n\019\250\000\n\005\213\020\002\020\018\020\022\018\138\020\026\020\"\020*\0202\020\130\020\142\020\150\020\162\000\n\020\166\020\238\020\174\020\178\0206\020\186\007\225\020\194\020:\020\134\006%\017\014\020\202\020\210\018\142\020\250\020\138\021>\021F\021J\018\150\006%\006%\021Z\021b\021f\006%\020\146\001\138\018\154\021n\011\025\011\025\021~\018\162\003r\011\025\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\021\134\001v\021\142\001~\016\210\001\134\002j\002r\002v\016\214\021\146\002\186\021\162\021\170\020>\016\218\021\194\001\138\021\202\022\026\005\189\022b\016\234\022n\002~\022\226\022\238\023\014\002\230\023:\017\242\016\242\023J\017\246\023R\001\150\017\250\tY\023n\023z \218\002\134\ta\018\014\023\130\001\154\n\221\023\134\001\146\023\142\018\030\tY\002\246\016\162\023\158\018\030\ta\023\178\023\206\019\190\023\242\018N\018R\023\254\019\190\024\014\019\214\024\022\024\026\024*\000\n\003\026\0242\003\030\0246\001\150\002\154\019\218\019\222\024>\024N\024b\018j\003&\019\226\001\154\024~\018n\b\130\003.\020B\024\146\024\158\018r\018v\017\006\017\n\018z\019\230\024\174\024\198\024\214\004\237\019\234\024\226\025\019\025;\025S\tY\025s\000\n\025\139\002a\ta\b\146\018~!J\025\171\019\238\019\242\018\130\019\246\025\195\000\n\025\219\020\n!^\025\230\026\006\026r\005\189\020\022\018\138!\182\026\130!b\005\189\005\189\020\238\026\179\004\237\027\n\027\031\020\238\027G\027S\0206\027c\005\189\005\189\020:\020\134\027k\017\014\027\134\027\143\018\142\027\151\020\138\027\159\015\138\tY\018\150\015\154\027\186\015\186\ta\027\203\027\238\020\146\027\246\018\154\015\194\tY\005\189\028\006\018\162\003r\ta\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\028#\001v\n\225\001~\016\210\001\134\002j\002r\002v\016\214\0283\018\030\015\202\028;\028N\016\218\028W\028_\028g\004\237\019\190\028r\016\234\028\151\002~\004\237\004\237\028\163\002\230\028\182\017\242\016\242\028\191\017\246\028\199\028\207\017\250\004\237\028\242\028\251\029\003\002\134\0296\018\014\029f\029\166\n\221\015\218\001\138\029\199\029\207\029\219\002\246\029\235\004\237\018\030\029\243\029\255\015I\030\n\030\026\018N\018R\004\237\019\190!\030\019\214\030'\030/\0306\030C\003\026\030O\003\030\030W\030c\002\154\019\218\019\222\001\146\023v\030o\018j\003&\019\226\030\138\031\018\018n\b\130\003.\031:\031J\031~\018r\018v\017\006\017\n\018z\019\230\020\238\031\134\017r\015Q\019\234\031\182\031\222\001\150\017v\031\226\031\234 \023 \222 \234 \250\b\146\018~\001\154!\002\019\238\019\242\018\130\019\246!?\000\n!G\020\n!N![!f\015I\015I\020\022\018\138!v\015I!\171!\186!\199!\235\"\007!r\000\n\"\022\020\238\"\030\"*\0206\"6\"C\"J\020:\020\134\"R\017\014\"[\"b\018\142\"k\020\138\"\127\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015Q\015Q\000\000\018\162\003r\015Q\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\007\217\000\000\000\000\000\000\019\210\018R\007\217\007\217\000\000\019\214 b\000\000\000\000\000\000\003\026\000\000\003\030\000\000\007\217\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\007\217\004\249\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\005\213\000\000\000\000\020\022\018\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\022\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\n\253\n\253\000\000\018\162\003r\n\253\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\004\245\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\004\249\000\000\000\000\016\234\000\000\002~\004\249\004\249\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\004\249\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\210\018R\004\249\000\000!\030\019\214\021\002\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\015-\019\234\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\b\146\018~\004\245\004\245\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\004\245 \230\000\000\020\022\018\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\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\004\245\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015-\015-\000\000\018\162\003r\015-\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\210\018R\000\000\000\000\000\000\019\214\031\022\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\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\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015y\015y\000\000\018\162\003r\015y\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\210\018R\000\000\000\000\000\000\019\214\031\022\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\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\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015u\015u\000\000\018\162\003r\015u\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\016\202\000\000\000\000\000\000\002\134\016\206\018\014\000\000\000\000\n\221\030\226\000\000\016\210\000\000\000\000\002\246\000\000\016\214\030\230\000\000\000\000\000\000\000\000\000\000\019\210\018R\000\000\000\000\000\000\019\214\022\174\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\021R\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\001\146\021V\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\017r\014!\014!\020\022\018\138\001\150\017v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\n\020\146\000\000\018\154\000\000\005\233\000\000\000\000\018\162\003r\000R\000V\000f\000\194\000\000\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014!\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\t\021\t\021\002\230\000\000\017\242\t\021\000\000\017\246\000\000\000\000\017\250\014!\000\000\000\000\000\000\002\134\000\000\023.\000\000\000\000\n\221\000\000\014!\000\000\000\000\000\000\002\246\000\000\014!\014!\000\000\000\000\000\000\000\000\000\000\023>\018R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\022\000\000\000\000\018j\003&\000\000\000\000\014!\018n\001\238\003.\000\000\014!\014!\018r\018v\017\006\023B\018z\000\000\000\000\000\000\000\000\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\146\018~\007!\000\000\000\000\000\000\018\130\007!\000\000\000\n\000\000\000n\007!\000\000\007!\000\000\007!\000\000\018\138\007!\007!\007!\000\000\r\234\007!\r\250\007!\000\000\007!\000\000\014\002\007!\r\014\007!\007!\007!\007!\007!\000\000\017\014\007!\007!\018\142\007!\023F\000\000\000\000\007!\018\150\007!\000\000\000\000\007!\007!\007!\023N\007!\018\154\000\000\007!\007!\007!\018\162\003r\000\000\007!\007!\000\000\007!\000\000\007!\007!\007!\000\000\000\000\007!\002V\000\000\007!\007!\000\000\000Z\007!\000Z\007!\007!\007!\000\000\000\000\007!\0146\000\000\000\000\007!\007!\000Z\007!\014\162\007!\007!\007!\007!\000Z\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\007!\007!\000\000\007!\007!\000\000\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000\000\007!\000\000\000\000\007!\007!\000\000\000\000\007!\007!\007!\000\000\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\n\225\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\018\030\tY\002\230\000\000\001\138\000\000\000\000\002\254\000\000\019\190\003\002\000\000\000\000\016\202\000\000\002\134\000\000\000\000\016\206\000\000\000\000\000\000\000\000\030\226\000\000\016\210\002\246\000\000\000\000\002\250\016\214\030\230\000\000\000\000\000\000\003\150\007\246\000\000\003\018\000\000\000\000\b\250\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\001\138\000\000\000\000\000\000\000\000\b\254\003&\tY\000\000\000\000\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\000\000\t\018\003>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\017F\000\000\000\000\017%\000\000\020\238\t\022\000\000\000\000\000\000\000\000\t\026\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\017r\000\000\t\"\000\000\000\000\001\150\017v\tY\017%\017%\000\000\000\000\000\000\t&\000\000\001\154\b\238\000\000\000\000\tY\000\000\000\000\000\000\017%\000\000\000\000\t2\000\000\000\000\017%\017%\000\000\t:\b\246\000\000\005M\n~\000\000\000\000\017%\000\n\t>\017%\000\000\017%\005\233\tF\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\000\000\002\230\n\138\001\138\000\000\000\000\002\254\000\000\000\000\003\002\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\002\246\000\000\n\142\002\250\017%\000\000\000\000\000\000\000\000\003\150\007\246\000\000\003\018\n\150\000\000\b\250\000\000\000\000\017%\003\026\000\000\003\030\000\000\000\000\002\154\017%\000\000\000\000\000\000\000\000\b\254\003&\000\000\017%\017%\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\000\000\t\018\003>\000\000\005>\005F\000\194\000\000\000\198\000\000\005\162\005\170\005\178\006\014\000\000\006\030\006&\000\000\006N\t\022\006V\000\000\006^\006\138\t\026\006\146\000\000\000\n\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\006\154\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\006\162\000\000\t2\000\000\000\000\000\000\000\000\000\000\t:\000\000\000\000\t\153\000\000\000\000\000\000\000\000\000\000\t>\000\000\000\000\000\000\000\000\tF\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\006\178\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\021R\002\254\000\000\000\000\003\002\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\001\146\021V\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\0052\003\150\007\246\000\000\003\018\000\000\000\000\b\250\000\000\017r\000\000\003\026\000\000\003\030\001\150\017v\002\154\001\225\000\000\000\000\001\225\000\000\b\254\003&\001\154\000\000\000\000\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\001\138\t\018\003>\000\000\000\000\000\000\000\000\001\225\001\225\000\000\000\000\000\000\000\000\000\n\000\000\000\000\024\"\000\000\000\000\t\022\000\000\000\000\001\225\000\000\t\026\000\000\001\225\000\n\001\225\001\225\000\000\001\146\024&\000\000\000\000\000\000\t\"\000\000\001\225\000\000\000\000\001\225\000\000\001\225\0052\000\000\000\000\t&\000\000\000\000\000\000\000\000\000\000\017r\007y\000\000\000\000\000\000\001\150\017v\t2\000\000\000\000\000\000\000\000\000\000\t:\000\000\001\154\002Q\001\225\000\000\000\000\000\000\000\000\t>\000\000\000\000\000\000\000\000\tF\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\n\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\001\225\tn\000\000\001\225\000\000\000\000\000\000\001\225\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\254\000\000\001\225\003\002\000\000\007y\001\225\001\225\002\134\000\000\000\000\000\000\000\000\tv\000\000\000\000\000\000\001\225\001\225\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\150\007\246\000\000\003\018\000\000\000\000\t.\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\b\254\003&\000\000\000\000\000\000\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\000\000\t\018\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\t\022\000\000\000\000\000\000\000\000\t\026\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000R\000V\000f\000\194\t\"\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\t2\000\000\000\000\000\000\000\000\000\000\t:\000\000\000\000\t\169\002~\000\000\000\000\000\000\002\230\t>\001\138\000\000\000\000\002\234\tF\003r\002\238\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\014\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\015\018\015\026\000\194\000\000\000\198\000\000\015v\015~\015\134\015\226\000\000\015\242\015\250\000\000\016\"\003B\016*\000\000\0162\016^\003F\016f\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\016n\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016v\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\001\133\001\133\001\133\001\133\000\000\001\133\007!\001\133\001\133\001\133\001\133\016\134\001\133\001\133\000\000\001\133\000\000\001\133\007!\001\133\001\133\001\133\001\133\000\000\000\000\000\000\000\000\025\206\000\000\007!\000\000\007!\000\000\000\000\000\000\007!\007!\001\133\001\133\001\133\000\000\007!\000\000\025\210\000\000\000\000\000\000\007!\000\000\001\133\007!\000\000\000\000\000\000\007!\001\133\000\000\000\000\001\133\000\000\007!\000\000\001\133\000\000\000\000\025\222\000\000\000\000\001\133\000\000\000\000\007!\014\250\000\000\000\000\001\133\007!\000Z\000\000\000\000\001\133\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\001\133\001\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\000\000\007!\000\000\000\000\007!\000\000\000\000\007!\000\000\001\133\000\000\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\007!\001\133\007!\007!\000\000\007!\001\133\000\000\001\133\000\000\000\000\001\133\007!\025\226\000\000\007!\000\000\000\000\001\133\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\001\133\001\133\000\000\000\000\000\000\001\133\001\133\000\000\000\000\000\000\000R\012\254\r\006\000\194\000\000\000\198\026\182\rb\rj\rr\r\206\000\000\r\222\r\230\025\234\014\014\000\000\014\022\000\000\014\030\014J\002r\014R\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\242\014Z\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\000\000\025\254\000\000\000\000\000\000\000\000\000\000\030\006\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\000\000\000\000\026\018\000\000\000\000\000\000\000\000\000\000\000\000\014r\000\000\000\000\000\000\000\000\027\162\000\000\000\000\000\000\026\022\029\014\000\000\000\000\016\218\000\000\014\158\000\000\000\000\000\000\000\000\016\234\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\014\182\000\000\000\000\026\026\018\014\000\000\026\030\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\026\"\000\000\000\000\020\006\018R\026&\000\n\026*\019\214\026.\0262\000\000\0266\003\026\000\000\003\030\000\000\000\000\000\000\026:\019\222\000\000\026>\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\026B\000\000\018z\019\230\000\000\026F\026J\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\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\0206\000\000\000\000\000\000\020:\020\134\016\218\000\000\000\000\000\000\018\142\000\000\020\138\016\234\000\000\000\000\018\150\000\000\000\000\002\230\000\000\001\138\016\242\020\146\017\246\018\154\000\000\017\250\000\000\000\000\018\162\003r\000\000\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018f\018R\000\000\000\000\000\000\019\214\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\000\000\000\000\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\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\0206\000\000\000\000\000\000\020:\020\134\000\000\000\000\017\201\000\000\018\142\017\201\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\re\000\000\000\000\018\162\003r\000\000\000\000\017\201\017\201\000\000\000\000\000\000\017\201\000\000\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\017\201\000\000\017\201\017\201\000\000\re\017\201\000\000\017\201\017\201\000\000\000\000\017\201\000\000\000\000\017\201\000\000\017\201\017\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\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\017\201\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006M\000\000\000\000\006M\000\000\000\000\017\201\017\201\000\000\017\201\017\201\017\201\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\006M\006M\000\000\006M\017\201\000\000\017\201\000\000\006M\006M\000\000\000\000\017\201\017\201\017\201\006M\017\201\017\201\017\201\ra\000\000\006M\006M\000\000\000\000\006M\006M\006M\006M\000\000\000\000\006M\000\000\000\000\006M\006M\006M\006M\000\000\000\000\000\000\006M\000\000\000\000\006M\006M\000\000\006M\006M\000\000\ra\006M\000\000\006M\006M\000\000\000\000\006M\000\000\000\000\006M\000\000\006M\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\ra\000\000\000\000\000\000\000\000\000\000\006M\000\000\000\000\000\000\ra\000\000\006M\000\000\006M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006M\006M\006M\000\000\000\000\b\185\006M\006M\006M\000\000\ra\000\000\000\000\000\000\000\000\000\000\000\000\006M\000\000\000\000\000\000\000\000\006M\000\000\000\000\006M\000\000\006M\006M\006M\006M\b\185\006M\006M\006M\000\000\000\000\006M\006M\000\000\000\000\000\000\000\000\006M\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\006M\006M\006M\000\000\006M\006M\006M\012\209\012\209\012\209\012\209\000\000\012\209\000\000\012\209\012\209\012\209\012\209\000\000\012\209\012\209\000\000\012\209\000\000\012\209\000\000\012\209\012\209\012\209\012\209\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\012\209\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\017y\017y\000\000\000\000\012\209\017y\000\000\026\198\003\138\017y\000\000\026\206\000\000\000\000\000\000\017y\000\000\012\209\017y\017y\000\000\017y\017y\000\000\012\209\003\146\000\000\017y\003\166\012\209\000\000\017y\000\000\000\000\017y\000\000\017y\017y\012\209\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\017y\012\209\017y\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\012\209\000\000\000\000\004\242\000\000\012\209\000\000\012\209\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\012\209\000\000\000\000\012\209\017y\017y\000\000\017y\017y\004\246\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\012\209\012\209\004\254\000\000\000\000\027\"\012\209\017y\000\000\000\000\017y\017y\017y\017y\017y\000\000\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\017\t\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\017\t\000\000\000\000\000\000\017\t\000\000\000\000\003\138\017\t\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\017\t\017\t\000\000\017\t\017\t\000\000\000\000\003\146\000\000\017\t\003\166\000\000\000\000\017\t\000\000\000\000\017\t\000\000\017\t\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\017\t\012\193\012\193\012\193\012\193\000\000\012\193\004\242\012\193\012\193\012\193\012\193\000\000\012\193\012\193\000\000\012\193\000\000\012\193\000\000\012\193\012\193\012\193\012\193\000\000\000\000\000\000\017\t\017\t\000\000\017\t\017\t\004\246\000\000\017\t\000\000\000\000\000\000\012\193\012\193\012\193\000\000\000\000\004\254\000\000\000\000\000\000\000\000\017\t\000\000\012\193\017\t\017\t\017\t\017\t\017\t\012\193\000\000\000\000\017\t\017\t\017\t\000\000\017\t\017\t\017\t\005>\005F\000\194\012\193\000\198\000\000\005\162\005\170\005\178\006\014\012\193\006\030\006&\000\000\006N\012\193\006V\000\000\006^\006\138\000\000\006\146\000\000\000\000\012\193\012\193\000\000\000\000\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\000\000\000\000\000\002\162\000\000\000\000\000\000\012\193\000\000\000\000\012\193\000\000\000\000\012\193\006\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\193\000\000\000\000\000\000\000\000\012\193\000\000\012\193\000\000\000\000\012\193\000\000\000\000\000\000\000\000\000\000\000\000\012\193\000\000\012\193\000\000\000\000\012\193\006\178\000\000\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\193\012\193\000\000\000\000\000\000\026\202\012\193\012\197\012\197\012\197\012\197\000\000\012\197\000\000\012\197\012\197\012\197\012\197\000\000\012\197\012\197\000\000\012\197\000\000\012\197\000\000\012\197\012\197\012\197\012\197\000\000\000\000\006U\000\n\000\000\006U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\197\012\197\012\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\006U\006U\000\000\000\000\012\197\006U\000\000\027&\006U\006U\000\000\000\000\000\000\000\000\000\000\006U\000\000\012\197\006U\006U\000\000\006U\006U\000\000\012\197\006U\000\000\006U\006U\012\197\000\000\006U\000\000\000\000\006U\000\000\006U\006U\012\197\012\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\012\197\000\000\006U\012\197\006U\000\000\012\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006U\000\000\000\000\000\000\012\197\000\000\000\000\006U\000\000\012\197\000\000\012\197\000\000\000\000\012\197\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\012\197\000\000\000\000\012\197\006U\006U\000\000\006U\b\197\006U\000\000\006U\000\000\000\000\000\000\000\000\000\000\000\000\012\197\012\197\006U\000\000\000\000\006Q\012\197\006U\006Q\000\000\006U\000\000\006U\000\000\006U\000\000\000\000\000\000\006U\006U\006U\000\000\006U\006U\006U\000\000\000\000\000\000\000\000\000\000\000\000\006Q\006Q\000\000\000\000\000\000\006Q\000\000\000\000\006Q\006Q\000\000\000\000\000\000\017=\000\000\006Q\000\000\000\000\006Q\006Q\000\000\006Q\006Q\000\000\000\000\006Q\000\000\006Q\006Q\000\000\000\000\006Q\000\000\000\000\006Q\000\000\006Q\006Q\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\000\000\006Q\000\000\006Q\000\000\000\000\b*\000\000\017=\000\000\000\000\017=\000\000\017=\006Q\000R\012\254\r\006\000\194\000\000\000\198\006Q\rb\rj\rr\r\206\000\000\r\222\r\230\000\000\014\014\000\000\014\022\000\000\014\030\014J\002r\014R\000\000\000\000\017=\006Q\006Q\000\000\006Q\b\189\006Q\000\000\006Q\000\000\000\000\000\000\027.\014Z\027J\000\000\000\000\006Q\000\000\000\000\000\000\000\000\006Q\000\000\027V\006Q\000\000\006Q\000\000\006Q\014b\000\000\000\000\006Q\006Q\006Q\000\000\006Q\006Q\006Q\017=\000\000\000\000\027n\000\000\000\000\000\000\017=\000\000\000\000\014r\000\000\000\000\000\000\000\000\027\162\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\027\194\014\158\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\014\014\182\000\000\b\018\027\206\016\202\000\000\028&\000\000\000\000\016\206\000\000\000\000\000\000\000\000\030\226\000\000\016\210\000\000\002\246\028>\000\000\016\214\030\230\000\000\028j\000\000\n\197\b.\b:\028\154\000\000\bR\bj\bn\000\000\000\000\028\166\003\026\028\210\003\030\000\000\029\210\001\138\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\029\222\029\246\021R\b\134\b\138\000\000\030\002\b\142\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\021V\000\000\000\000\000\000\000\000\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\017r\000\000\000\000\b\162\000\000\001\150\017v\000\000\000\000\000\000\000\000\000\000\007A\000\000\b\166\001\154\b\182\002\230\000\000\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\198\000\000\000\000\000\000\000\000\000\000\005]\000\n\002\246\b\202\000\000\000\000\005\233\000\000\b\210\003r\000\000\b.\b:\000\000\000\000\bR\bj\bn\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\000\000\000\000\000\000\b\134\b\138\000\000\000\000\b\142\001\154\000\000\000\000\011I\011I\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007A\000\000\b\166\000\000\b\182\002\230\000\000\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\198\000\000\000\000\000\000\000\000\000\000\t\237\000\000\002\246\b\202\000\000\000\000\000\000\000\000\b\210\003r\000\000\b.\b:\000\000\n\210\bR\bj\bn\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\n\218\n\226\000\000\b\134\b\138\000\000\000\000\b\142\001\154\000\000\000\000\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\000\000\000\000\000\n\242\n\250\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\011\002\000\000\000\n\011\n\000\000\011\018\000\000\000\000\000\000\000\000\000\000\b\162\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\007A\000\000\b\166\000\000\b\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\026\000\000\000\000\b\190\000\000\000\000\000\000\017\145\017\145\b\198\000\000\000\000\017\145\000\000\000\000\002\129\017\145\000\000\b\202\000\000\000\000\000\000\017\145\b\210\003r\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\017\145\000\000\b*\000\000\017\145\000\000\011\"\017\145\000\000\017\145\017\145\000\000\000\000\011*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\161\000\000\000\000\000\000\000\000\000\000\000\000\006\161\000\000\017\145\000\000\017\145\000\000\000\000\000\000\0112\011:\000\000\000\000\000\000\000\000\000\000\017\145\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\002~\017!\000\000\000\000\017!\000\000\002\162\000\000\000\000\017\145\000\000\000\000\017\145\017\145\017\145\017\145\017\145\002\134\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\017!\017!\000\000\000\000\000\000\017!\000\000\000\000\000\000\017!\002\150\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\017!\000\000\017!\017!\000\000\000\000\002\154\000\000\017!\000\000\b*\000\000\017!\000\000\000\000\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\017\006\017\n\000\000\014v\000\000\000\000\000\000\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\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\017!\005\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0079\017\014\017!\017!\000\000\017!\017!\000\000\000\000\017!\000\000\0079\000\000\000\000\000\000\017]\0079\000\000\017]\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\017!\017!\017!\017!\000\000\000\000\000\000\017!\017!\017!\000\000\017!\017!\017!\017]\017]\000\000\000\000\000\000\017]\000\000\000\000\018\186\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\017]\000\000\017]\017]\000\000\000\000\018\194\000\000\017]\018\206\000\000\000\000\017]\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\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\000\018\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\000\000\000\000\000\000\000\000\017]\017]\000\000\017]\000\000\018\222\002\230\017]\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\018\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\000\000\000\000\002\246\000\000\017]\017]\017]\000\000\017]\017]\017]\b.\b:\000\000\000\000\bR\bj\011b\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\000\000\000\000\000\000\b\134\b\138\000\000\000\000\b\142\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\001\209\000\000\000\000\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\001\209\000\n\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\b\162\001\209\001\209\000\000\000\000\000\000\001\209\000\000\000\000\007A\001\209\000\000\000\000\b\182\000\000\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\b\190\001\209\000\000\000\000\001\209\000\000\b\198\001\209\001\209\000\000\001\209\001\209\t\253\001\209\001\209\b\202\000\000\000\000\000\000\001\209\b\210\003r\000\000\001\209\000\000\000\000\001\209\000\000\001\209\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\174\000\000\001\209\001\209\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\182\000\000\001\209\001\209\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001Y\000\000\000\000\001Y\004\226\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\001\209\001\209\000\000\000\000\000\000\000\000\004\214\001\209\001\209\000\000\001\209\001\209\001\209\001Y\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001Y\001Y\000\000\001Y\001Y\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\003\246\000\000\004\006\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\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\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\005=\005=\005=\005=\000\000\005=\000\000\005=\005=\005=\005=\000\000\005=\005=\000\000\005=\000\000\005=\000\000\005=\005=\005=\005=\000\000\000\000\000\000\001Y\000\000\000\000\001Y\001Y\000\000\002\202\003\254\000\000\000\000\000\000\000\000\005=\001M\000\000\000\000\001M\000\000\005=\000\000\000\000\001Y\000\000\000\000\001Y\001Y\001Y\001Y\001Y\005=\000\000\000\000\000\000\001Y\001Y\000\000\001Y\001Y\001Y\001M\001M\000\000\000\000\000\000\001M\000\000\000\000\000\000\001M\005=\000\000\000\000\000\000\000\000\001M\005=\000\000\001M\001M\000\000\001M\001M\000\000\000\000\005=\000\000\001M\000\000\000\000\000\000\001M\000\000\000\000\003\246\000\000\001M\001M\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\005=\000\000\000\000\000\000\001M\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001M\000\000\000\000\001M\001M\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001Q\005=\000\000\001Q\000\000\002\162\000\000\000\000\001M\000\000\000\000\001M\001M\001M\001M\001M\002\134\000\000\000\000\000\000\001M\001M\000\000\001M\001M\001M\001Q\001Q\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\002\166\000\000\000\000\000\000\000\000\001Q\002\194\000\000\001Q\001Q\000\000\001Q\001Q\000\000\000\000\002\154\000\000\001Q\000\000\000\000\000\000\001Q\000\000\000\000\003\246\000\000\001Q\001Q\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001Q\000\000\000\000\000\000\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\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001U\014\233\000\000\001U\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\001Q\001Q\001Q\000\000\000\000\000\000\000\000\001Q\001Q\000\000\001Q\001Q\001Q\001U\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001U\001U\000\000\001U\001U\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\003\246\000\000\004\006\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001U\000\000\000\000\001U\001U\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001e\000\000\000\000\001e\000\000\002\162\000\000\000\000\001U\000\000\000\000\001U\001U\001U\001U\001U\002\134\000\000\000\000\000\000\001U\001U\000\000\001U\001U\001U\003\230\004\014\000\000\000\000\000\000\001e\000\000\000\000\000\000\001e\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001e\001e\000\000\001e\001e\000\000\000\000\002\154\000\000\001e\000\000\000\000\000\000\001e\000\000\000\000\003\246\000\000\004\006\001e\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001e\000\000\000\000\000\000\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\198\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\001e\001e\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001]\002\181\000\000\001]\000\000\000\000\000\000\000\000\001e\000\000\000\000\001e\001e\001e\001e\001e\000\000\000\000\000\000\000\000\001e\001e\000\000\001e\001e\001e\003\230\004\014\000\000\000\000\000\000\001]\000\000\000\000\000\000\001]\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001]\001]\000\000\001]\001]\000\000\000\000\000\000\000\000\001]\000\000\000\000\000\000\001]\000\000\000\000\003\246\000\000\004\006\001]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001]\000\000\000\000\001]\001]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001a\000\000\000\000\001a\000\000\002\162\000\000\000\000\001]\000\000\000\000\001]\001]\001]\001]\001]\002\134\000\000\000\000\000\000\001]\001]\000\000\001]\001]\001]\003\230\004\014\000\000\000\000\000\000\001a\000\000\000\000\000\000\001a\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001a\001a\000\000\001a\001a\000\000\000\000\002\154\000\000\001a\000\000\000\000\000\000\001a\000\000\000\000\003\246\000\000\004\006\001a\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001a\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001i\002\173\000\000\001i\000\000\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\001a\001a\001a\002\134\000\000\000\000\000\000\001a\001a\000\000\001a\001a\001a\003\230\004\014\000\000\000\000\000\000\001i\000\000\000\000\000\000\001i\002\150\000\000\000\000\000\000\000\000\003\238\006\254\000\000\001i\001i\000\000\001i\001i\000\000\000\000\002\154\000\000\001i\000\000\007\002\007\006\004\022\000\000\000\000\003\246\000\000\004\006\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\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\004\030\000\000\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i\000\000\000\000\000\000\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\014\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\001i\001i\000\000\000\000\003\254\000\000\000\000\000\000\005m\000\000\001q\000\000\000\000\001q\000\000\000\000\000\000\000\000\001i\000\000\000\000\001i\001i\001i\001i\001i\000\000\000\000\000\000\000\000\001i\001i\000\000\001i\001i\001i\003\230\004\014\000\000\000\000\000\000\001q\000\000\000\000\000\000\001q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001q\001q\000\000\001q\001q\000\000\000\000\000\000\000\000\001q\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\000\000\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\001q\001q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004v\000\000\000\000\001m\000\000\000\000\000\000\000\000\001q\000\000\000\000\001q\001q\001q\001q\001q\002\134\000\000\000\000\000\000\001q\001q\000\000\001q\004.\001q\003\230\004\014\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\002\150\000\000\000\000\000\000\000\000\003\238\006\254\000\000\001m\001m\000\000\001m\001m\000\000\000\000\002\154\000\000\001m\000\000\007\002\007\006\004\022\000\000\000\000\003\246\000\000\004\006\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\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\004\030\000\000\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001m\000\000\000\000\000\000\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\014\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\001m\001m\000\000\000\000\003\254\000\000\000\000\000\000\n%\000\000\004v\000\000\000\000\001u\000\000\000\000\000\000\000\000\001m\000\000\000\000\001m\001m\001m\001m\001m\000\000\000\000\000\000\000\000\001m\001m\000\000\001m\004.\001m\003\230\004\014\000\000\000\000\000\000\001u\000\000\000\000\000\000\001u\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001u\001u\000\000\001u\004~\t\178\000\000\000\000\t\186\001u\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\202\t\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\004\030\t\218\001u\000\000\000\000\0025\000\000\t\226\t\234\000\000\000\000\000\000\000\000\001u\000\000\000\000\000\000\t\242\000\000\000\000\t\250\004%\n\002\000\000\000\000\000j\004%\000\000\000z\000\000\000\154\004%\000\000\004%\000\000\000\000\000\000\000\162\004%\004%\004&\000\000\000\000\001u\001u\000\000\000\000\003\254\000\000\n\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\001u\000\000\000\000\001u\001u\001u\001u\001u\000\000\000\170\004%\000\000\001u\001u\004%\001u\004.\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\018\004%\004%\0025\000\000\000\000\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\186\000\000\000\000\000\000\000\000\0025\000\000\004%\000\000\0025\0025\000\000\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\n\"\n*\004%\000\000\004!\000\000\004%\000\000\000\222\004!\000\000\000\238\000\000\001\014\004!\000\000\004!\004%\000\000\000\000\001\022\004!\004!\000\000\000\000\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\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\004!\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\004%\000\000\000\000\004%\004!\004!\000\000\003\218\004%\004%\0046\000\000\000\000\004%\000\000\000\000\000\000\004!\000\000\001.\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\004!\004!\004V\004^\000\189\000\000\000\000\002-\000\000\000\000\004!\002-\000\000\000\000\004!\000\000\000\000\004f\000\000\000\000\002-\002-\000\165\004n\004\142\004!\000\000\000\000\000\000\002-\003\230\004\014\000\000\004\150\000\000\004!\004\158\000\000\004\166\002-\004!\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\165\000\165\000\000\000\189\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\003\238\003\246\004\174\004\006\002-\000\000\000\165\000\165\000\000\000\000\004!\000\000\000\000\004!\004!\002-\000\165\004!\000\000\003\246\000\000\004\006\004!\004!\000\000\000\000\000\000\004!\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\182\000\000\000\000\002-\002-\000\000\000\165\004\190\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\000\000\000\000\000\000\000\002-\000\000\000\000\002-\002-\002-\002-\004&\000\000\000\000\000\000\000\000\002-\002-\003\254\004\198\004\206\002-\003\230\004\014\000\000\000\000\000\000\000\129\000\000\000\165\000\000\000\129\000\189\000\000\000\000\000\000\003\254\003\238\000\000\000\189\000\129\000\129\000\000\000\129\000\129\000\000\000\000\000\189\004.\000\129\000\165\000\000\000\000\004\022\000\000\000\000\003\246\000\165\004\006\000\129\000\000\000\000\000\000\000\000\000i\000\165\000\165\000i\000\000\000\000\000\000\000\000\000\000\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\030\000\000\000\129\000\000\000\000\000i\000i\000\000\000\000\000\000\000i\000\000\000\000\000\129\000i\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000i\000i\000\000\000i\000i\000\000\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\003\246\004&\004\006\000i\000\129\000\129\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\129\000\129\000\129\000i\000\000\000i\000\000\000\000\000\129\000\129\000\000\000\129\004.\000\129\000\000\000\000\000i\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000e\000\000\000\000\000e\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\002\134\000\000\000\000\000\000\000i\000i\000\000\000i\000i\000i\000e\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\002\150\000\000\000\000\000\000\000\000\003\238\006\254\000\000\000e\000e\000\000\000e\000e\000\000\000\000\002\154\000\000\000e\000\000\007\002\007\006\000e\000\000\000\000\003\246\000\000\004\006\000e\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\007\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\000e\000\000\000e\000\000\000\000\000]\000]\000\000\000\000\000\000\000]\000\000\000\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\007\014\000\000\000\000\000]\000\000\000\000\000\000\000]\000\000\000\000\003\246\000e\000]\000]\000e\000e\000\000\000\000\003\254\000\000\000\000\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000e\000e\000]\000\000\000]\000\000\000\000\000e\000e\000\000\000e\000e\000e\000\000\000\000\000]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004v\000\000\000\000\000\137\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000]\000]\000\000\002\134\000\000\000\000\000\000\000]\000]\000\000\000]\000]\000]\003\230\004\014\000\000\000\000\000\000\000\137\000\000\000\000\000\000\000\137\002\150\000\000\000\000\000\000\000\000\003\238\031\138\000\000\000\137\000\137\000\000\000\137\004~\000\000\000\000\002\154\000\000\000\137\000\000\031\142\007\006\004\022\000\000\000\000\003\246\000\000\004\006\000\137\000\000\000\000\000\000\000\000\004v\000\000\000\000\000}\000\000\007\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\004\030\000\000\000\137\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000}\000\000\000\000\000\137\000}\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000}\000}\000\000\000}\000}\000\000\031\146\000\000\000\000\000}\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000}\000\137\000\137\000\000\000\000\003\254\000\000\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\137\000\000\000\000\000\137\000\137\000\137\000\137\004\030\000\000\000}\000\000\000\000\000\137\000\137\000\000\004\134\004.\000\137\000\000\000\000\000}\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\000}\000}\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000u\000\000\000\000\000u\000\000\000\000\000\000\000\000\000}\000\000\000\000\000}\000}\000}\000}\000\000\002\134\000\000\000\000\000\000\000}\000}\000\000\000}\004.\000}\003\230\004\014\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\002\150\000\000\000\000\000\000\000\000\003\238\031\138\000\000\000u\000u\000\000\000u\000u\000\000\000\000\002\154\000\000\000u\000\000\031\142\007\006\000u\000\000\000\000\003\246\000\000\004\006\000u\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000\000\007\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\004\030\000\000\000u\000\000\000\000\000a\000a\000\000\000\000\000\000\000a\000\000\000\000\000u\000a\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000\000\031\146\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\003\246\000u\000a\000a\000u\000u\000\000\000\000\003\254\000\000\000\000\000\000\n\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000u\000u\000a\000\000\000a\000\000\000\000\000u\000u\000\000\000u\000u\000u\000\000\000\000\000a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\002\134\000\000\000\000\000\000\000a\000a\000\000\000a\000a\000a\003\230\004\014\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\002\150\000\000\000\000\000\000\000\000\003\238\031\138\000\000\000m\000m\000\000\000m\000m\000\000\000\000\002\154\000\000\000m\000\000\031\142\007\006\000m\000\000\000\000\003\246\000\000\004\006\000m\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000\000\007\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\000m\000\000\000m\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000q\000\000\000\000\000m\000q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000q\000q\000\000\000q\000q\000\000\031\146\000\000\000\000\000q\000\000\000\000\000\000\000q\000\000\000\000\003\246\000m\004\006\000q\000m\000m\000\000\000\000\003\254\000\000\000\000\000\000\002\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000m\000m\000m\004\030\000\000\000q\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004v\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000q\000q\000\000\002\134\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\003\230\004\014\000\000\000\000\000\000\000\133\000\000\000\000\000\000\000\133\002\150\000\000\000\000\000\000\000\000\003\238\007\022\000\000\000\133\000\133\000\000\000\133\004~\000\000\000\000\002\154\000\000\000\133\000\000\007\002\007\006\004\022\000\000\000\000\003\246\000\000\004\006\000\133\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000\000\007\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\004\030\000\000\000\133\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000y\000\000\000\000\000\133\000y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000y\000\133\000\133\000\000\000\000\003\254\000\000\000\000\000\000\n5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\133\000\133\000\133\000\133\004\030\000\000\000y\000\000\000\000\000\133\000\133\000\000\000\133\004.\000\133\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\007!\016\014\000\000\000\000\000\000\000\000\016\022\000\000\000\000\000\000\000\000\000\000\007!\004&\000\000\000\000\000y\000y\000\000\000\000\003\254\000\000\000\000\007!\000\000\007!\012\213\012\213\000\000\007!\007!\000\000\012\213\000\000\000y\007!\000\000\000y\000y\000y\000y\007!\000\000\000\000\007!\000\000\000y\000y\007!\000y\000y\000y\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\016J\000\000\012\213\000\000\007!\000Z\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\012\213\000\000\007!\000\000\000\000\007!\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000\000\002\246\000\000\000\000\002\250\007!\000\000\000\000\007!\000\000\003\006\003\n\000\000\003\018\000\000\b\178\000\000\000\000\000\000\000\000\003\026\000\000\003\030\007!\000\000\000\000\000\000\000\000\007!\007!\012\213\003\"\003&\000\000\000\000\011~\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\r\030\007!\r.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\007!\000\000\000\000\000\000\003F\000\000\000\000\000\n\r\138\007!\r\154\007!\000\000\007!\000\000\000\000\003N\007!\007!\000\000\000\000\007!\000\000\007!\007!\000\000\000\000\003R\n\213\007!\000\000\000~\007!\000\142\007!\000\000\007!\000\000\007!\007!\003V\007!\007!\000\000\007!\000\000\003b\000\000\000\000\n\213\007!\n\213\000\000\007!\016\138\003z\000\000\007!\007!\000Z\003j\003r\007!\007!\007!\0152\007!\015B\015\158\007!\015\174\000\000\000\000\000\000\007!\016\182\000\000\000\000\007!\007!\000Z\007!\000\000\000\130\007!\007!\007!\000\000\000\000\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000Z\007!\007!\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\007!\000Z\007!\007!\000Z\000\000\007!\007!\007!\007!\000\000\007!\007!\000\000\000\000\000\000\000\000\000Z\000\000\007!\007!\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\000\000\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\000\000\007!\000\000\007!\000\000\017u\007!\007!\017u\007!\000\000\007!\000\000\000\000\007!\000\000\001R\000\000\001b\007!\000\000\007!\000\000\001j\007!\000\000\007!\007!\000\000\007!\007!\017u\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\007!\000\000\017u\007!\007!\017u\017u\007!\017u\017u\000\000\000\000\007!\007!\017u\007!\b*\007!\017u\007!\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\002\158\000\000\007!\r\"\000\000\000Z\000\000\000\000\007!\000\000\000\000\017u\000\000\017u\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\017u\007!\007!\007!\000\000\000\000\000\000\007!\007!\006*\000\000\006:\007!\007!\007!\000\000\006B\000\000\000\000\007!\007!\000\000\007!\007!\000\000\000\000\007!\017u\017u\000\000\017u\000\000\007!\007!\017u\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\007!\000\000\007!\rz\000\000\007!\000Z\000\000\017u\007!\017u\007!\000\000\007!\007!\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\000Z\007!\007!\007!\000\000\007!\000\000\007!\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\000\000\007!\000\000\007!\000\000\007!\007!\000Z\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\000\000\000\000\007!\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\000\000\002\246\007!\000\000\002\250\007!\000\000\007!\007!\000\000\003\006\003\n\007!\003\018\000\000\b*\000\000\000\000\000\000\000\000\003\026\000\000\003\030\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\007!\r\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\007!\r\210\000\000\000\000\003F\000\000\000\000\000\n\007!\r\238\000\000\007!\007!\007!\000\000\000\000\003N\007!\007!\000\000\007!\000\000\000\000\007!\000\000\007!\000\000\003R\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\000\000\003V\007!\007!\007!\007!\000\000\003b\000\000\007!\007!\000\000\000\000\007!\007!\007!\003z\007!\000\000\007!\000Z\003j\003r\007!\015\"\007!\007!\000\000\000\000\000\000\000\000\007!\000Z\000\000\007!\007!\0156\007!\000\000\007!\000Z\000\000\007!\015\142\000\000\007!\007!\007!\007!\000\000\007!\000\000\007!\007!\007!\015\162\000\000\000\000\007!\007!\007!\000\000\007!\000\000\007!\007!\007!\007!\015\230\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\016\002\000\000\007!\007!\007!\007!\007!\007!\007!\007!\007!\007!\007!\000Z\007!\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\000Z\007!\007!\007!\007!\007!\007!\000Z\000\000\007!\000\000\000\000\007!\007!\007!\007!\000\000\007!\007!\000Z\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\000Z\007!\007!\000\000\000\000\007!\000\000\007!\007!\007!\000\000\007!\007!\000Z\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000\000\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\000\000\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\007!\000\000\000\000\000\000\007!\007!\000\000\007!\000\000\000\000\007!\002\230\007!\001\138\000\000\000\000\002\234\007!\007!\002\238\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\018\018\007!\007!\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\001\233\000\000\000\000\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\001\233\001\233\000\000\000\000\000\000\001\233\000\000\000\000\000\000\001\233\000\000\000\000\003B\000\000\000\000\001\233\000\000\003F\001\233\001\233\000\n\001\233\001\233\000\000\000\000\000\000\000\000\001\233\000\000\003N\000\000\001\233\000\000\000\000\001\233\000\000\001\233\001\233\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\001\233\000\000\001\233\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\000\000\001\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\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\000\000\000\000\000\000\001\233\018\250\000\000\001\233\n\213\000\000\000\000\001\233\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\001\233\000\000\001\233\000\000\000\000\003\026\000\000\003\030\019\002\001\233\001\233\000\000\001\233\001\233\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\003B\000\000\000\000\000\000\000\000\003F\000\000\0232\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003z\000\000\003:\003>\007!\003j\003r\000\000\000\000\007!\000\000\000\242\000\000\001\002\007!\000\000\007!\000\000\000\000\000\000\003B\007!\007!\000\000\000\000\003F\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\000\000\003V\000\000\002\230\000\000\001\138\000\000\003b\002\234\000\000\000\000\002\242\000\000\007!\007!\000\000\003z\000\000\006v\000\000\000\000\003j\003r\000Z\000\000\000\000\007!\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\007!\003\006\012V\000\000\003\018\007!\007!\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\007!\000\000\000\000\000\000\007!\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\007!\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\003N\002\242\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\003R\000\000\007!\000\000\000\000\000\000\002\246\007!\007!\002\250\000\000\000\000\007!\003^\000\000\003\006\012F\000\000\003\018\003b\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\003f\000\000\000\000\000\000\000\000\003j\003r\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\012.\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\000\000\003j\003r\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003J\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\007!\003j\003r\000\000\000\000\007!\000\000\005^\000\000\005n\007!\n\205\007!\000\000\000\000\000\000\003B\007!\007!\000\000\007!\003Z\000\000\n\205\000\n\007!\000\000\005\202\000\000\005\218\007!\000\000\007!\003N\n\205\000\000\n\205\007!\007!\000\000\n\205\000\000\000\000\000\000\003R\000\000\n\205\000\000\000\000\000\000\007!\000\000\n\205\000\000\007!\n\205\000\000\003^\007!\n\205\026\210\000\000\000\000\003b\000\000\n\205\000\000\000\000\000\000\007!\007!\000\000\003f\000\000\007!\000\000\000\000\003j\003r\000Z\000\000\n\205\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\000\000\006\182\000\000\007!\007!\000\000\000Z\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\000\000\000\000\007!\007!\n\205\000\000\000\000\n\205\007!\007!\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\n\205\000\000\007!\007!\000\000\n\205\n\205\n\205\007!\n\205\n\205\000\000\n\205\007!\000\000\000\000\000\000\000\000\000\000\n\205\000\000\000\000\n\205\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\205\000\000\000\000\000\000\007!\n\205\n\205\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\002\230\000\000\001\138\007!\000\000\002\254\007!\000\000\003\002\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\022\007\246\000\000\003\018\000\000\b\n\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\254\003&\000\000\000\000\000\000\t\002\001\238\003.\000\161\000\000\000\000\t\n\t\014\000\000\000\000\t\018\003>\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\t\022\000\161\000\161\000\000\000\000\t\026\000\000\000\000\000\n\002\246\000\000\000\000\002\250\000\000\000\000\000\000\003\238\t\"\003\006\b\022\000\000\003\018\000\161\000\161\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\161\000\000\000\000\003\246\000\000\004\006\000\000\003\"\003&\t2\000\000\000\000\003*\001\238\003.\t:\000\000\000\000\0032\0036\000\000\000\000\003:\003>\t>\000\000\000\000\000\000\000\000\tF\003r\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\011\250\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\005%\000\000\005%\000\000\000\000\005%\000\000\003R\005%\000\000\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\003\254\000\000\003^\000\000\000\000\000\000\005%\000\000\003b\005%\000\000\000\000\000\000\000\000\000\161\005%\005%\003f\005%\000\000\000\000\000\161\003j\003r\000\000\005%\000\000\005%\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\005%\005%\000\000\000\000\000\000\005%\005%\005%\000\000\000\000\000\000\005%\005%\000\000\000\000\005%\005%\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\005%\000\000\000\000\000\000\000\000\005%\000\000\000\000\005%\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\005%\003\006\017\254\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\"\003&\005%\000\000\000\000\003*\001\238\003.\005%\000\000\000\000\0032\0036\000\000\000\000\003:\003>\005%\000\000\000\000\000\000\000\000\005%\005%\000\000\000\000\000\000\000\000\025\234\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\025\238\000\n\000\000\000\000\000\000\000\000\000\000\028n\000\000\000\000\003N\025\242\000\000\025\246\r)\r)\000\000\025\250\000\000\000\000\000\000\003R\000\000\025\254\000\000\000\000\000\000\000\000\000\000\026\002\000\000\000\000\026\n\000\000\003^\000\000\026\014\000\000\000\000\000\000\003b\000\000\026\018\000\000\000\000\000\000\000\000\000\000\000\000\003f\000\000\000\000\000\000\025\234\003j\003r\r)\000\000\026\022\000\000\000\000\000\000\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\012\253\000\000\r)\025\254\026\026\000\000\000\000\026\030\000\000\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\027z\000\000\026\"\000\000\026\018\000\000\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\028\234\027\254\000\000\012\253\000\000\026\022\026:\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\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\007!\026F\026J\r)\000\000\007!\012\253\000\000\026\026\000\226\007!\026\030\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000\000\000\026\"\000\000\000\000\000\000\000\000\026&\000\n\026*\007!\026.\0262\000\000\0266\007!\007!\007!\000\000\000\246\007!\026:\007!\000\000\026>\000\000\001:\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\000\000\026B\001V\007!\000\000\007!\026F\026J\012\253\007!\007!\007!\007!\000\000\007\190\000\000\000\000\007!\000\000\000Z\000\000\005N\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\005b\007!\005\186\007!\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000Z\000\000\005\206\007!\000\000\007!\000\000\000Z\000\000\000\000\007!\007!\007!\000\000\000\000\007!\012\138\007!\007!\007!\007!\000Z\007!\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\006\018\007!\007!\007!\000Z\007!\007!\007!\007!\007!\000\000\007!\007!\007!\000\000\000Z\007!\000Z\007!\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\006.\007!\007!\007!\007!\007!\000Z\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\007!\000Z\007!\007!\007!\007!\007!\000\000\000\000\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\000\000\007!\007!\000\000\000Z\007!\000\000\007!\000\000\007!\007!\007!\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\007!\007!\007!\007!\000\000\007!\000\000\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\000\000\000\000\007!\007!\019.\000\000\007!\0196\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\019F\019N\007!\007!\000\000\002=\007!\000\000\000\000\002=\000\000\007!\007!\000\000\000\000\019V\007!\000\000\002=\002=\000\000\019^\019f\000\000\000\000\000\000\0015\002=\000\000\0015\000\000\019n\000\000\000\000\019v\000\000\019~\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\003\230\004\014\000\000\000\000\000\000\0015\000\000\000\000\000\000\0015\000\000\019\134\000\000\002=\000\000\003\238\000\000\000\000\0015\0015\000\000\0015\0015\000\000\002=\000\000\000\000\0015\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0015\000\000\000\000\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\019\142\001F\001N\002=\001v\000\000\001~\019\150\001\134\002j\002r\002v\004\030\000\000\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002=\0015\002=\002~\000\000\000\000\000\000\000\000\000\000\002=\002=\000\000\019\158\019\166\002=\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0015\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002\150\001\029\000\000\000\000\001\029\000\000\031\154\000\000\000\000\000\000\000\000\000\000\0015\000\000\0015\002\154\000\000\000\000\000\000\031\142\007\006\0015\0015\000\000\0015\004.\0015\001\029\001\029\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\029\007\n\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\000\000\001\025\001\029\000\000\001\025\000\000\001\029\000\000\000\000\003\246\000\000\004\006\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\001\025\001\025\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\001\029\000\000\001\029\000\000\003\238\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\001\029\n\025\000\000\001\025\000\000\000\000\000\000\001\025\000\000\000\000\003\246\000\000\004\006\001\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\001\029\000\000\000\000\001\029\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\025\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\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\001\025\000\000\000\000\001\025\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\001\025\001\025\001\025\001\017\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\000\000\000\000\004v\001\017\000\000\001=\000\000\001\017\000\000\000\000\003\246\000\000\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\001\017\000\000\001\017\000\000\003\238\000\000\000\000\001=\001=\000\000\001=\004~\000\000\001\017\000\000\000\000\001=\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001=\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\001=\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\004v\000\000\000\000\0011\000\000\000\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\001=\001=\000\000\004\134\004.\001=\003\230\004\014\000\000\000\000\000\000\0011\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\0011\0011\000\000\0011\0011\000\000\000\000\000\000\001)\0011\000\000\001)\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0011\000\000\000\000\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\230\004\014\000\000\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\004\030\000\000\0011\000\000\003\238\000\000\000\000\001)\001)\000\000\001)\001)\000\000\0011\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\000\000\003\246\000\000\004\006\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0011\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\001)\0011\000\000\000\000\000\000\000\000\000\000\000\000\0011\0011\000\000\0011\004.\0011\000\000\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\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\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\001)\001)\000\000\001)\001)\001)\001\021\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\000\000\000\000\001!\001\021\000\000\001!\000\000\001\021\000\000\000\000\003\246\000\000\001\021\001\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\000\000\000\000\003\230\004\014\000\000\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\001\021\000\000\001\021\000\000\003\238\000\000\000\000\001!\001!\000\000\001!\001!\000\000\001\021\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\000\000\003\246\000\000\004\006\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\000\000\003\254\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\001\021\001!\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\001\021\001\021\001\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\000\000\001!\000\000\000\000\001!\000\000\000\000\000\000\003\254\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\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\001!\001!\003\230\004\014\000\000\000\000\000\000\001%\000\000\000\000\000\000\001%\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\000\000\004v\001%\000\000\0019\000\000\001%\000\000\000\000\003\246\000\000\004\006\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\153\000\000\000\000\0019\000\000\000\000\000\000\0019\000\000\004\030\000\000\001%\000\000\003\238\000\000\000\000\0019\0019\000\000\0019\004~\000\000\001%\000\000\000\000\0019\000\153\000\153\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0019\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\001%\000\000\000\000\001%\000\000\000\000\000\000\003\254\000\153\000\000\000\000\003\246\004\030\000\153\0019\004v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\0019\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\001%\001%\000\000\000\153\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0019\003\238\000\000\000\000\003\254\000\000\000\000\000\197\004~\000\000\001-\000\000\000\000\001-\000\000\000\000\000\000\004\022\000\000\000\000\003\246\0019\004\006\0019\000\000\000\153\000\000\000\000\000\000\000\000\0019\0019\003\254\0019\004.\0019\003\230\004\014\000\000\000\000\000\000\001-\000\000\000\000\000\000\001-\000\153\000\000\000\000\004\030\000\000\003\238\000\000\000\153\001-\001-\000\000\001-\001-\000\000\000\000\000\153\000\153\001-\000\000\000\000\000\000\004\022\000\000\028\214\003\246\028\222\004\006\001-\000\000\000\000\000\000\000\000\000\000\000\000\028\230\000\000\000\000\000\000\000\000\029\006\000\000\000\000\000\000\004&\000\000\000\000\025\238\000\000\000\000\000\000\003\254\000\000\000\000\004\030\000\000\001-\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\197\000\000\001-\000\000\000\000\025\254\000\000\000\197\000\000\000\000\000\000\026\002\000\000\000\000\026\n\004\134\004.\000\000\026\014\000\000\000\000\000\000\000\000\000\000\026\018\000\000\000\000\000\000\000\000\004&\000\000\000\000\001-\000\000\000\000\000\000\003\254\000\000\000\000\000\000\026\022\029\014\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-\000\000\000\000\000\000\000\000\000\000\000\000\001-\001-\000\000\001-\001-\001-\000\000\000\000\000\000\026\026\000\000\000\000\026\030\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\026\"\000\000\000\000\000\000\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\017A\002\246\000\000\017A\000\000\000\000\026:\000\000\000\000\026>\b.\b:\000\000\000\000\000\000\bN\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\026B\000\000\017A\017A\000\000\026F\026J\br\003&\000\000\t^\000\000\b~\001\238\003.\000\000\000\000\017A\b\134\b\138\000\000\017A\b\142\017A\017A\000\000\000\000\tf\000\000\000\000\n>\000\000\000\000\017A\000\000\000\000\017A\000\000\017A\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\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\190\000\000\000\000\000\000\nJ\000\000\b\198\000\000\002\230\000\000\001\138\000\000\000\000\017\246\000\000\b\202\017\250\000\000\000\000\000\000\b\210\003r\000\000\000\000\017A\017A\000\000\017A\000\000\nN\000\000\017A\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nV\018f\018R\000\000\000\000\017A\019\174\000\000\000\000\017A\017A\003\026\000\000\003\030\000\000\000\000\017A\000\000\000\000\000\000\017A\017A\018j\003&\000\000\000\000\000\000\018n\001\238\003.\000\000\000\000\000\000\018r\018v\000\000\025\234\018z\000\000\000\000\000\000\000\000\000\000\000\000\025\234\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\b\146\018~\025\238\000\000\000\000\025\242\018\130\025\246\000\000\000\n\000\000\025\250\000\000\025\242\000\000\025\246\000\000\025\254\018\138\025\250\000\000\000\000\000\000\026\002\000\000\025\254\026\n\000\000\000\000\000\000\026\014\026\002\000\000\000\000\026\n\000\000\026\018\000\000\026\014\000\000\000\000\000\000\018\142\000\000\026\018\000\000\000\000\027v\018\150\000\000\000\000\000\000\026\022\000\000\000\000\028F\000\000\018\154\000\000\000\000\026\022\000\000\018\162\003r\000\000\000\000\000\000\000\000\000\000\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\253\000\000\026\026\000\000\000\000\026\030\000\000\000\000\012\253\000\000\026\026\000\000\000\000\026\030\000\000\000\000\000\000\000\000\026\"\000\000\000\000\000\000\000\000\026&\000\n\026*\026\"\026.\0262\000\000\0266\026&\000\n\026*\000\000\026.\0262\026:\0266\000\000\026>\000\000\025\234\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\025\238\026B\000\000\000\000\000\000\000\000\026F\026J\012\253\026B\000\000\025\242\000\000\025\246\026F\026J\012\253\025\250\000\000\000\000\000\000\000\000\000\000\025\254\000\000\000\000\000\000\000\000\000\000\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\t\141\000\000\000\000\000\000\000\000\026\018\000\000\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\028\174\000\000\000\000\000\000\000\000\026\022\000\000\t\141\000\000\t\141\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\t\141\000\000\000\000\000\000\t\141\000\000\012\253\000\000\026\026\000\000\t\141\026\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\026\"\000\000\t\141\029\014\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\b\017\000\000\000\000\000\000\000\000\t\141\000\000\000\000\t\141\026B\000\000\000\000\b\017\000\000\026F\026J\012\253\000\000\000\000\000\000\000\000\t\141\000\000\b\017\000\000\b\017\t\141\t\141\t\141\b\017\t\141\t\141\000\000\t\141\000\000\b\017\000\000\000\000\000\000\000\000\t\141\b\017\000\000\t\141\b\017\000\000\000\000\000\000\b\017\027Z\000\000\000\000\000\000\000\000\b\017\000\000\000\000\000\000\t\141\000\000\000\000\025\238\000\000\t\141\t\141\030\022\000\000\000\000\000\000\000\000\b\017\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\000\000\025\254\000\000\000\000\000\000\000\000\000\000\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\b\017\000\000\026\018\b\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\b\017\000\000\026\022\027r\000\000\b\017\b\017\b\017\000\000\b\017\b\017\000\000\b\017\000\000\000\000\025\238\000\000\000\000\000\000\b\017\000\000\000\000\b\017\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\026\026\000\000\000\000\026\030\b\017\025\254\000\000\000\000\000\000\b\017\b\017\026\002\000\000\000\000\026\n\000\000\026\"\000\000\026\014\025\234\000\000\026&\000\n\026*\026\018\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\026\022\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\026\026\000\000\026\018\026\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\026\"\000\000\028*\028B\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\026\026\000\000\000\000\026\030\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\026\"\000\000\026\014\028\170\000\000\026&\000\n\026*\026\018\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\026\022\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\026\026\000\000\026\018\026\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\026\"\000\000\026\022\025\234\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\026\026\000\000\000\000\026\030\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\026\"\000\000\026\014\025\234\000\000\026&\000\n\026*\026\018\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\029\226\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\026B\025\254\000\000\000\000\000\000\026F\026J\000\000\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\026\026\000\000\026\018\026\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\026\"\000\000\026\022\000\000\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\026\026\000\000\000\000\026\030\026B\000\000\000\000\000\000\000\000\026F\026J\000\000\000\000\000\000\000\000\000\000\026\"\000\000\017Y\017Y\000\000\026&\030\014\026*\000\000\026.\0262\000\000\0266\000\000\000\000\000\000\000\000\017Y\000\000\026:\000\000\017Y\026>\017Y\017Y\000\249\000\000\000\000\000\249\000\000\000\000\b*\000\000\017Y\000\000\000\000\017Y\026B\017Y\000\000\000\000\000\000\026F\026J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\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\017Y\003\238\000\000\000\000\000\000\000\249\000\000\000\249\000\249\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\004\022\000\000\000\000\003\246\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\225\000\225\000\000\017Y\017Y\000\000\017Y\000\000\000\000\000\000\017Y\000\000\004\030\000\000\000\000\003\238\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\221\017Y\000\000\000\221\000\000\017Y\017Y\000\000\000\225\000\000\000\000\003\246\017Y\004\006\000\000\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\000\004&\000\000\000\000\000\249\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\225\003\238\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\000\000\249\000\000\000\000\000\000\000\249\000\249\000\000\000\221\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\249\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\000\000\003\254\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\213\000\225\000\000\000\000\000\000\000\225\000\225\000\000\000\000\000\000\000\000\000\000\004v\000\000\000\213\001\001\000\225\000\225\000\213\000\000\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\213\000\000\000\221\003\246\000\000\000\213\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\003\238\000\221\000\221\000\000\001\001\000\000\001\001\004~\000\000\000\213\000\000\000\000\000\221\000\221\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\000\000\000\000\000\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\004\030\000\213\000\000\000\000\000\213\000\000\000\000\000\000\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\003\238\000\213\000\213\000\000\000\245\000\000\000\245\000\245\000\237\000\000\000\000\000\237\000\213\000\213\000\000\004&\004\022\000\000\001\001\003\246\000\000\004\006\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\001\001\000\000\000\000\000\000\001\001\001\001\000\000\000\000\000\000\000\000\000\000\000\000\004\030\003\238\000\000\004\134\004.\000\237\000\000\000\237\000\237\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\000\000\237\000\000\000\000\003\246\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\217\000\217\000\000\000\000\004&\000\000\000\000\000\245\000\000\000\000\000\000\003\254\000\000\004\030\000\000\000\217\000\000\000\000\000\000\000\217\000\229\000\217\000\217\000\229\000\000\000\245\000\000\000\000\000\000\000\245\000\245\000\217\000\000\000\000\003\246\000\000\000\217\000\000\000\000\000\000\000\245\004.\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\237\000\000\000\000\000\000\003\254\003\238\000\000\000\217\000\000\000\229\000\000\000\229\000\229\000\000\000\233\000\000\000\000\000\233\000\237\000\000\000\000\000\229\000\237\000\237\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\237\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\229\003\254\003\238\000\000\000\000\000\000\000\233\004v\000\233\000\233\000\253\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\233\000\217\000\217\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\229\000\000\000\000\000\229\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\000\253\000\000\000\253\004~\000\000\000\241\000\000\000\000\000\241\000\229\000\000\000\000\004\022\000\229\000\229\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\233\000\000\000\000\004\030\003\254\003\238\000\000\000\000\000\000\000\241\004v\000\241\000\241\000\000\000\177\000\000\000\000\000\000\000\233\000\000\000\000\004\022\000\233\000\233\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\233\000\000\003\230\004\014\000\000\000\000\003\230\004\014\000\000\004&\000\000\000\000\000\253\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\003\238\000\000\000\185\000\185\000\000\000\157\000\177\000\177\000\000\000\253\000\000\000\000\004\022\000\253\000\253\003\246\000\177\004\006\000\000\003\246\000\000\004\006\000\000\000\000\000\253\004.\000\000\000\000\000\000\000\000\000\169\000\157\000\157\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\241\000\000\000\000\004\030\003\254\000\157\000\000\004\030\000\000\000\000\000\000\000\157\000\157\000\000\000\000\003\230\004\014\000\000\000\241\000\000\000\000\000\157\000\241\000\241\003\246\000\000\000\157\000\000\000\000\000\000\003\238\000\000\000\000\000\241\000\241\000\000\000\169\000\169\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\169\000\177\000\000\003\246\003\254\004\006\000\000\000\157\003\254\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\177\000\000\000\000\000\185\000\000\000\000\000\000\000\177\000\000\000\000\000\169\000\185\004.\003\230\004\014\000\177\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\003\238\000\000\000\000\000\000\003\254\004v\000\173\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\157\003\246\000\000\004\006\000\169\000\000\000\000\000\157\000\000\000\000\000\000\003\254\000\181\003\230\004\014\000\157\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\003\238\000\000\004\030\000\000\000\169\000\000\000\193\004~\000\000\000\000\003\230\004\014\000\169\000\169\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000\000\000\000\181\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\173\000\000\003\246\000\000\004\006\000\000\004\030\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\173\000\173\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\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\004&\000\000\000\000\000\193\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\193\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\181"))
+    ((16, "\002\130\000\151\000\000\000\000\021\244\000\151\000\000\000\000\000\015\000\000\000\000\000\000\001\015\000\000\000\000\000\000\002\130\000\000\000\0052\n\000\000\023\144\023\172\000\000\000\000BB\023\144\023\144\000\000\000\000P\"P\134\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\191\000\143\023\144\000\000\023\144\000\000\000\000\000\000\023\144\000\000\023\144\000\000C\026`\232\023\144\000\000\000\000X\172a(\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\159\000q\023\144\000\000\023\144\000\000a6\023\144\000\000\000\000\023\144\000\000Q\146aR\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\006\000\000\000\017\000\017\000\000\000\000\000\000\000\000\000\159\000\000\000\000\000#\000\017\000\000\000#\000\000\000\000\000\017\000\164\000\160\000\017\000r\000\000\000f\000R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\000\017\000\000\000\136\002\220\000\017\000\000\000\142\001f\000\000\000\000\000\000\000\208\023\144\000\000\023\144\000\017\000\232\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\0018\001\154\023\144\000\0002\nQ\1468D\000\0008D\000\000\000\000\000\000\000\017\000\0008D\000\0007(\002\2488D\003\014\000\000\000\017\007|N\250\000\000\000\000X\218Y\156\000\000\\\200\000\000Z4N\250\030\202\030\202\\\200N\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\204\030\202\000\000\000\000Z\204Z\204Z\204\000\000Z\204\000\006\000\000\000\000N\250Z\204\000\000\000\000'\230\000\017\000\000\025.\030\202N\250\000\000)6N\2504\238N\2505\012N\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\132N\250\000\000D\160N\2506(N\2507DN\250\000\000N\250\000\000N\2508`N\2509|N\250:\152N\250;\180N\250<\208N\250=\236N\250\027\172N\250\000\000\000\000\000\000\002\240N\250\000\000\000\000\000\000\000\000N\250E(N\250FDN\250F\204N\250G\232N\250?\bN\250@$N\250A@N\250HpN\250I\140N\250\000\000N\250J\020N\250K0N\250K\184N\250\000\000N\250L\212N\250M\\N\250\000\000\000\000N\250\000\000\002\206\000\000\000\000\000\017\000\000\000\000\000\000\003\006\000\000\003\b\000\000\000\020N\250\000\000\000\020\000\000\000\000\000b2\n\000\000\027\144\023\144\000\000\0032ax\023\144\000\000\000\000[\162a\142\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\003\148\0048\023\144\000\000\023\144\000\000\023\144\000\000\023\144\000\000\005\144a\146\023\144\000\000\000\000[\202a\184\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\004\024\004\134\023\144\000\000\023\144\000\000a\252\023\144\000\000\000\000\023\144\000\000RZb8\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\007\212\000\017\004N\023\144\000\000X\172\000\017\004T\023\144\000\000\000\000\023\144\000\000\023\144\000\000\023\144\000\000\004\250\0058\023\144\000\000[\2028D\000\000\000\000\005*\023\144\000\0008D\000\000\000\000<\180:|\000\000\001f\006$\000\017\005r\006R=\208=\208\000\000\000\000\000\000\000\195L\184=\208\001X@\b\000\000\000\000\000\000\006h\006D\002\162\006r=\208\000\000\000\000\005\192\000\000\005\198\006\164=\208\005\216\000\000\000+\000\000\007|\000\000\000\000\002\004F(\000\000\000\000\000\000\006>\007D\000\000\007R\000\000*\182\001f8D\006`\023\144\000\000`\2328D\006l\023\144\000\000\000\000\000\000\000\017\007b\000\000\000\000\000\000\000b\000\000\000\000\030\202\006~\000\000\006\136\\\200.<\000\000]X\030\202\006\140\000\000\006\146-\n.<N\250\006\154\000\000\030\202\006\156\000\000\006\160m\138.<N\250\000\232N\250\006\158\000\000\000\000.<.<\000\000\000\000\000\000\000\000+\148\000\000\000\000\000\000\000\000\000\000Z\204\000\000\000\000\001(\007fN\250.<\000\017\000\000Z\204\000\000\000\000Z\204\000\000\000\006\000\000,\188m\138\000\000\000\000\025\248\000\017\000\000\025.\025.\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\204\000\000\000\000\002\138\029\174\025.Z\204\000\000\000\000Z\204\000\000\000\006\000\000\\\200\000\000\000\000m\218\000\017\000\000\025.\028\178N\250\000\000N\250\000\000\000\000\000\000\000\000\000\000\006\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\162N\250u\206N\250\006\218N\250\000\000N\250v4N\250v\150N\250w(N\250wvN\250x\bN\250xjN\250\000\000N\250x\206N\250y*N\250y\142N\250\000\000N\250y\234N\250zN\002\224\026\174\000\000N\250\006\174\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\003\002\028.\000\000\000\000\006\182\000\000N\250\006\188\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000&0\000\000\006\242.<\006\254.<\000\000\000\026\000\000\000\0000~N\250C\188N\250C\224N\250]fN\250kfN\250k\230N\250z\170N\250z\178N\250\000\000N\250{\014N\250{@N\250{\196N\250\000\000N\250| N\250|R\000\000\006\214\000\000\002x/(\000\000\003\2144..<\000\000\004\n0\020\000\000\000\000\000\000\000\000\007\\\000\000\000\000\000\000\006\218\000\000\006\240\000\000\000\000\006\254\000\000\000\000\007\000\000\000\000\000\007\b\000\000\000\000\000\000\000\000\000\000\000\000\007\016\007\216\000\000\002\184\\\200\000\000\000\000\007\020\000\000\000[^0\007\218N\250\007\152\000\000\000\000\\\200\000[\000\000\000\000\007(\000\000\007(S@\000\000\030\202\0076ul\000\000\b\022\000\000\030\202\007@1\n\000\000\030\202\007B2&\000\000\007F\000\000\000\000\b<\000\000\007J\023\144\000\000aR8D\007L\023\144\000\000\000\000\002\0008D\000\000\002\000\000\000\000\000\007V\000\000\002\162\007P\023\144\000\000\000\000\001p2\n\000\0002\n\000\000\007>\000\000\001p\000\000\019\152-\188\023\172\000\000\007\166\023\186\023\172\000\000\000\000O\202R\026\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\007\130\007\178\023\172\000\000\023\172\000\000\023\172\000\000\023\172\000\000\b\208R\160\023\172\000\000\000\000O\244T\016\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\007\136\007\186\023\172\000\000\023\172\000\000T(\023\172\000\000\000\000\023\172\000\000\023\172T8\023\172\000\000\000\000\023\172\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\007\226\000\017\007b\023\172\000\000\023\172\000\017\007h\023\172\000\000\000\000\023\172\000\000\023\172\000\000\023\172\000\000\007\154\007\204\023\172\000\0002\n\000\000\007\140\000\000\002n2\n\000\000\000\000\002n\000\000\000\000\023\1868D\007\134\023\172\000\000\000\000\000\000\000\026\000\000\000\000\000\031\000\026\000\000\000\000\000\000\b\128\000\000\007\1848D\007\186\023\172\000\000 :8D\007\208\023\172\000\000\000\000\031\172\023\172\000\000\t:T\164\023\172\000\000\000\000PfT\188\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\b\b\b6\023\172\000\000\023\172\000\000\023\172\000\000\023\172\000\000\011\212T\202\023\172\000\000\000\000PlT\226\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\b\012\b:\023\172\000\000\023\172\000\000T\252\023\172\000\000\000\000\023\172\000\000NZU\022\023\172\000\000\000\000\023\172\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\t\018\000\017\007\228\023\172\000\000NZ\000\017\007\238\023\172\000\000\000\000\023\172\000\000\023\172\000\000\023\172\000\000\b\030\bN\023\172\000\000O\2028D\b\000\023\172\000\000\000\000\nr8D\b\004\023\172\000\000O\2448D\b\006\023\172\000\000\000\000\000\000\000\000\000\000\000\000\b\220N\250\b\020\"$\b\150\000\000\b\232N\250\b\"\b\2362\n\000\000\000\000\000\0002\n\000\017\000\000\003\000N\250\t\024\000\000\000\017\000\000\001<\t\026\000\000\t.\b\236\000\017\b2\t\002=\208\b6\001\154\000\000N\250\t&\000\000\000\000\000\000\t\012=\208\bF\t6\000\000\003\186\004>N\250\t8\000\000\t>\000\000*\182\000\017\004lN\250\tP\000\000\tX\000\000\000\017\004vN\250\tZ\000\000\tb\000\000\0013\b\160\t\n%:\000\000^\192\030\202\b\134Qd\000\000U\246\000\000\t\128\000\000\003\002\tZN\250\t\024\000\000\tbN\250\t6\000\000\001p\000\000\t\n\t\n\030\202\b\188\000\000\b\194n\154n\154\000\000\000\000\000\000\000\000\000\000\000\000Z\204\000\000\000\000Z\204\000\000\000\000Z\204\000\000\000\006\000\000n\154\000\000\000\0003B\000\017\000\000\025.\b\196\000\000N\250\b\198\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000VzN\250\000\000N\250\000\000\b\206\000\000\000\020\000\000\000\000\000\000\000\000\000\000c2N\250c\154N\250\b\248N\250\000\000N\250d\182N\250e\030N\250f:N\250f\162N\250g\190N\250h&N\250\000\000N\250iBN\250i\170N\250j\198N\250\000\000N\250k.N\250lJ.<\b\202\000\000\000\000\003\002\000\000\003\002\000\000\019\152\t\n\t\n\000\000\000\000\000\000\000\003\000\000\000\000\000\000\t\160N\250\b\212\"$#6\000\017\t\196\000\000\t\166W>\t\202W>\t\206N\250\b\226\"$\"$\001\022\001\022\004\012\001\226\001\022\000\000\000\000\004\018\004\026\000\000\004\028\n\"\000\000\000\000\000\000\000\000\000\000\b\230\000\000\000\000\t\216\000\000\t\226\000\000\000\000\n\"\t\200N\250\b\254\t\238\000\000\t\240\000\000\t4\000\000\t\218\025.\t\014\"$\000\000\000\000\000\000\007\136\000\000\000\000\003\002\000\000\t\150\000\000\015\018\0012\000\000\015\018\000\000\000\000&d\000\000\011\182\000\000\000\000\012\014\000\000\015\018\000\000\t\236\025.\tB\001\166\000\000N\250\n4\000\000\0032\000\000\n\018\000\017\tZ\n*=\208\tb\003\132\000\000N\250\nT\000\000\n6=\208\tl\n^\000\000\004\128N\250\nb\000\000\nd\000\000*\182\000\017\004\140N\250\nf\000\000\nj\000\000\000\000\000\000\012\014\000\000\000\000\006\016\000\000\t\n\000\000\0032\000\000\000\000\005\b#6\000\000\005\b\000\000\000\000\t\132\000\000\000\020\001\128\"$\000\000\006\006\0007\006\006\000\000\0007\000\000\t\n\000\000\t\n\000\000\000\000\000\000\t\128\000\000\000\000\t\144\000\000\0050\007\136\0007\006\006\000\000\000\000\000\000\0007\000\000\t\n\000\000\0050\000\000\000\000\029\232\n\130\019\152\000\000\020R\000\000\n\140\019\152\000\000\000\000\n\140\000\000\000\000\t\142\000\000\000\000\t\156\000\000\005@\t\n\000\000\005@\000\000\000\000\n\030\000\000\006\016\000\000\t\n\000\000\000\000\000\000\022\152W\214\000\000\n\146\000\000\022\152\000\000\n\156\000\000\n\162\000\0002\n\000\017\004H\000\000N\250\n\164\000\000\0122\nv\000\017\t\192\n\146=\208\t\200\005<\000\000N\250\n\184\000\000\005b\000\000N\250\n\186\000\000*\182\000\017\005|\000\000N\250\n\192\000\000\005\146\022\152\000\000\000\017\005\196\000\000N\250\n\196\000\000&d\n\206\000\000\000\000\000\000\n\176\025.\t\228\005\198\000\000N\250\n\220\000\000\007\184\000\000\n\180\000\017\t\250\n\214=\208\n\n\005\206\000\000N\250\n\250\000\000\005\248\000\000N\250\011\000\000\000*\182\000\017\006\004\000\000N\250\011\002\000\000\005\146\000\000\000\000\n\024\000\000$\154\n\150\000\000\000\000\000\000\n\154\000\000\000\165\001p\000\000\019\152\n\250\000\000\000\000N\250\nV\t\n\000\000\n0\000\000\0013\000\0002\n\000\000\000\000\001\182\019\152\000\000\019\152\000\000\n \000\000\001\182\000\000N\250\003\236N\250\000\000N\250\000\000\n&\000\000\003\236\000\000N\250\003\236\n(\000\000\021\024$\182\000\000\005\216\021\024\000\000\000\000\021\024\000\000\n*\000\000\005\216\000\000N\250\003\236\n4\000\0002\n\005\2202\n\000\0002\n\000\000\n>\000\000\005\220\000\000N\250\003\236\nB\000\000\000\000 J\000\000\000\151\n\226\000\000\000\000\n\184_\156\000\000\000\000\000\000\000\000\000\000\000\000\n\140\006\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002v_\156\000\000\001\b\003P\n\144\000\151\000\000\000\000\n\154\000\151\000\000\000\000\000\000\000\000\002\222\003P\000\000\000\000\000\000\000\000\n\250\000\000\000\000\000\000\000\000'\230*6\000\000[\168\000\000_\156\000\000\004@_\156\000\000\002\196\001H\001H\000\000\005\024\001H\000\000\nr\000\000\000\000\000\000\000\000\011\000\000\000+\148\000\000-\188_\156\000\000\003\224_\156\000\000\011\004\000\000_\156\011\014\000\000q\248`\030\011\020\000\000\011\022\000\000r\134oZ_\156\000\000\000\000\n\146_\156\011$\000\000\011H\000\000\011\\\000\0002\n\000\000\005\1502\n\000\000\n\216\023\148\000\000_\156\011d\000\000\003\020_\156\000\000\004\154_\156\000\000\004\132\011\236\000\000\011\238\000\000`\030_\156\n\226\000\000\000\000\000\000\000\000\000\000\000\000\011r\000\000r\232_\156\011v\000\000\011~\000\000svoj_\156\n\250_\156\011\136\000\000\011\140\000\000\011\142\000\000_\156\0118\000\151\000\000\000\000\006`_\156\000\000\004\132\000\000\011\150\000\000_\156\011\152\000\000s\216pt_\156\011\020_\156\011\160\000\000\011\162\000\000\011\170\000\000l\236\023\148\000\000\023\148\000\000`\030_\156\011$_\156\011\174\000\000\011\178\000\000\023\148\000\000p\214\000\000\000\000\006j_\156\000\000\001\128\001\218\001H\011.\000\000\000\000\001\212\001\212\000\000\000\000\000\000\000\000\005\216\001\212\000\000\0110\000\000\000\000\000\000\000\000\000\000\000\000\000\000_\156\000\000\006\158_\156\000\000\006\006\002\220\000\151\0114\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\192\000\000\011\206\000\000_\156\011\208\000\000tf_\156\011\210\000\000\011\212\000\000_\156\011\216\000\000!\174\011\128t\200NZq\150\011V\000\000_\156\011\234\000\000\011\242\000\000\011\194!\174_\156\011\252\000\000_\156\011\254\000\000\012\000\000\000_\156\012\016\000\000\000\151\011\130\000\000\000\000 J\000\000\000\000\0044\012|\000\000\000\000\001C\000\000\000\000\000\000N\250\000\000\000\000\000\000\004\132\000\000\000J\000\000\000\000\000\000\006\0062\n2\n2\n\000\000\003`\003`\003`\003`\000\000\000\000\000\000\000\000\000\000\000\000\003\002\019\152\012v\016\148\0012\000\000\000\000\004P\000\000\012\014\000\000.<\011\152\000\000\003\002\019\152\011\158\018\022\000\000\003\002\016\148\000\000\000\000\000\0002\n\025\140\000\000\000\000\000\000\011\236\0032\012rG\204G\204\000\000\004\136dPG\204\006xIp\000\000\000\000\b\170\012b\000\017\000\000\006\138K\020\000\000\000\000\000\000\000\000\000\000\011\174\012~\t\n\011\182\000\000\000\000\004P\000\000\012\014\000\000\021r\004\156\000\000\000\000\012l\000\000\000\000\0044\000\000\002\030\000\000\000\000\000\000N\250\000\000\004\132\000\000\003N\000\000\000\000\000\000\007\136\000\000\r\144\005L\r\144\000\000\t\n\r\144\000\000\005\246\000\000\t\n\000\000\t\n\000\000\t\n\000\000\019\242\000\000\000\000\000\000\000\000\000\000\t\n\000\000\005\246\000\000\t\n\000\000#\144\000\000\000\000\n\140\011\236\000\151\000\151\012\150\001h\000\000\001h\012\198\000\000\012\202\000\000\004\b\000\000\001h\002\196\001h\0110\001h\000\000\000\000\003\170\000\000\0144\000\151\011\194\000\000\011\196\000\000\012\002\000\151\000\151\011\200\000\000\n\140\012\216\000\000\014\234\012\254\012\236\000\225\012\236\000\000\000\000\b\214\000\151\000\000\001D\000\000\000\000\000\007\000\000\011\212\000\000\000\000\000\000\012\020\000\151\000\151\011\218\000\000\000\000\n\140\014\234\012\254\b\214\001D\000\007\011\220\000\000\014\234\012\254\b\214\001D\000\007\011\226\000\000\005T\000\026\012\000\000\151\011\250\007\b\006J\012&\000\151\000\000\012*\000\151\000\000\012\136\000\000\012\014\003B\012\n\007\b\012\144\000\000\012\014\007\b\012\148\000\000\000\000\007\b\000\000\012\150\000\000"), (16, "\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\018\n\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\025\006\007\213\030\219\030\223\014\165\007E\002\186\030\227\014\025\n\249\014!\014\165\001\138\014\165\014\025\014\025\000&\014\165\018>\014\165\014\165\014\137\014\165\001\138\"V\014\165\014\025\019\222\0007\000;\014\165\014\165\014\165\002\162\002\226\014\165\000*\006)\000\n!\190\000\174\014\165\000\178\001\146\014\165\014\165\n\249\001\182\002\190\001\202\014\165\014\165\014\025\014\165\007\"\014\165\001\"\001&\nE\001\142\014\165\001\138\014\165\014\165!*\014\165\014\165\014\165\bb\024\238\001\150\014\165\014\165\014\165\005*\001\170\014\165\014\165\014\165\014\222\001\154\001\238\014\165\014\165\014\165\014\165\014\165\014\165\012\018\004\253\001\210\014\165\014\165\000N\r\022\025V\025~\025\142\025\194\025\210\025\250\014\226\014\165\014\165\014\165\000\n\021\014\014\165\014\165\014\165\014\165\007\213\014\165\005B\014\165\002\026\000\n\014\165\001\234\001\238\014\165\014\165\t\225!\230\001\242\001\206\000\n\006)\001\246\001\250\007=\014\165\014\165\b\213\007=\014\165\014\234\007\149\001\214\014\165\014\165\014\165\014\165\005\133\007U\014\165\001\254\014\165\b\198\001\222\t\229\014\165\014\165\014\165\000\n\014\165\b\186\014\165\014\165\001\138\014\165\006\205\014\165\014\165\007\157\014\165\014\165\014\165\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\001\230\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\002\186\0141\026F\020^\014\177\018>\001\138\031\003\031\007\005\133\007\141\014\177\031\011\014\177\019\222\018f\005\133\014\177!2\014\177\014\177\029n\014\177\012\246\001\150\014\177\002&\0276\r}\0026\014\177\014\177\014\177\t\241\001\154\014\177\002m\001\146\006\250!6\0059\014\177\007\186\001\202\014\177\014\177!:\0059\017\130\018j\014\177\014\177\015q\014\177\021j\014\177\bj\029\130\0256\000\n\014\177\001\138\014\177\014\177\001\150\014\177\014\177\014\177\001\138\002J\026\174\014\177\014\177\014\177\001\154\026F\014\177\014\177\014\177\020b\bv\002^\014\177\014\177\014\177\014\177\014\177\014\177\n\253!\218\r}\014\177\014\177\021\014\012\254\005\173!\222\029\134\002\138\000\n\029r\005a\014\177\014\177\014\177\020j\005A\014\177\014\177\014\177\014\177\023N\014\177\005A\014\177!B\017N\014\177\023R\001\206\014\177\014\177\023V\015q\015q\002\142\001\150\012\194\015q\025>\007.\022R\014\177\005\173\n5\014\177\001\154\000\006\000\"\014\177\014\177\014\177\014\177\017\134\002q\014\177\029\138\014\177!J\021n\n\253\014\177\014\177\014\177\000\n\014\177\024\218\014\177\014\177\007e\014\177\000\n\014\177\014\177\001\138\014\177\014\177\014\177\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\014\166\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\001\138\007\133\001\146\006\250\007\221\018B\018R\018b\005\017\005Z\t\217\007\221\005j\007\221\005\138\005B!Z\007\221\014y\007\221\007\221\005\146\007\221\007\142\007\205\007\221\0272\002\157\016\234\001\150\007\221\001\146\007\221\016\238\0141\007\221\029\226\002*\031&\001\154\016\242\007\221\"\146\001\138\000.\016\246\031*\026\178 o s\007\221\007\221\002\206 w\005\154\007\221\007\221\b\r\001\150\021~\007\221\026\190\007\221\007\221\000\n\007\221\007\221\007\221\001\154\026\194\014\145\007\221\007\221\007\221\001\146\021\130\007\221\007\221\007\221\007\181\026\162\011b\007\221\007\221\007\221\007\221\007\221\007\221\t\253\005\170\t:\007\221\007\221\000\n\t\185\005\017\017\146\002\214\007]\007]\021\158\001\150\017\150\007\221\007\221\007\141\007J\007\221\007\221\007\221\007\221\001\154\007\221\011\250\007\221\022\"\026\206\007\221\005\017\b\r\007\221\007\221\n\225!j\004R\028\022\026\210\007=\026\222\017B\004\254!Z\014\145\nF!b\007\221\000\n\t\169\t\245\007\221\007\221\007\221\007\221\005\213\000\n\007\221\002\226\007\221\025^\017N\nz\007\221\007\221\007\221\002M\005\026\005\"\007\221\007\221\001\138\007\221!N\007\221\007\221\005\245\007\221\007\221\007\221\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253!R\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\0141\007\253\021\162\020^\007\253\023\142\014Q \143 \147\n\249\007\253\007\253 \151\007\253\005\158\028.\0286\007\253\018>\007\253\007\253\030\202\007\253\0141\001\150\007\253\025f\019\222\0141\007=\007\253\007\253\007\253\0141\001\154\007\253\007\253\007\253\007\253\0141 O\007\253\007\253\007\253\007\253!r\007\253\007\253 S\007=\007\253\007\253\007\253\007\253\014\129\007\253!b\028> V\000\n\007\253\030\202\007\253\011n\007\253\007\253\007\253\007\253\027~\007\253\n\r\007\253\007\253\007\253\005\162\014Q\007\253\007\253\007\253\020b\006\n\007\253\007\253\007\253\007\253\007\253\007\253\007\253\011\r\011~\020f\007u\007\253\020z\t\213\017\182\002}\t\197\020\134\014i\023\146\t\201\002]\007\253\007\253\007\253\021\014\007\253\007\253\007\253\007\253\007\253\007\253\006\014\007\253\017N\027&\007\253\017\214\005\198\007\253\007\253\005\214\017\242\005\246\007\253\007\253\023\190\021\198\022.\006z\005\254\007\253\006\142\021\230\007\253\015q\015q\017N\007\253\007\253\015q\007\253\017N\018>\007\253\023\210\007\253\017N\022\162\011\r\007\253\031\218\019\222\017N\"R\n)\023\"\007\253\023\238\007\253\028\"\007\253\007\253\006\006\007\253\007\253\007\253\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\026.\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\006\182\0262\024\018\024F\016\250\024\002\006\022\024z\025\158\006\186\025\218\017\n\0266\002~\026:\028.\0286\002\230\026>\018\018\017\018\029n\018\022\000\n\026B\018\026\007\197\n\249\024\142\023\194\002\134\027B\018.\026N\024\170\n\245\018>\026R\014A\021\014\n\249\002\246\"j\026V\031J\019\222\007\165\006\214\023\214\018>\019\242\018r\031v\031\130\007\173\019\246\022^\029\222\019\222\026Z\003\026\023\242\003\030\006\005\"v\002\154\021\006\019\254\001\138\011)\011)\018\138\003&\020\002\011)\006\254\018\142\b\146\003.\025\170\007\006\025\226\018\146\018\150\017&\017*\018\154\020\006\011\005\007\n\026^\007F\020\n\026b\027\242\007\189\015q\024\022\024J\001\146\007B\014)\024~\b\162\018\158\007N\026f\020\014\020\018\018\162\020\022\026j\000\n\026n\020*\026r\026v\005\225\026z\007^\0206\018\170\007f\024\146\021\014\026~\001\150\029\158\026\130\024\174\007j\007r\031\150\014q\0149\020V\001\154\021\014\014Y\020Z\020\166\006\005\017.\026\134\007}\018\174\007m\020\170\026\138\026\142\011\005\018\182\006\005\006\005\011)\011)\"f\006\005\020\178\011)\018\186\000\n\b\005\b\005\014a\018\194\003r\b\005\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\007\162\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\r*\007\166\028\198\r:\016\250\rZ\0049\029b\007\174\007\194\0049\017\n\rb\002~\031\230\007\214\007\238\002\230\n\025\018\018\017\018\b\014\018\022 \006\"\187\018\026\b\022\002\141\b.\007=\002\134\b6\018.\029\210\bF\n\245\bR\002\186\bZ\br\b\190\002\246\t\162\001\138\018>\rj\t\210\nV\002\226\n\138\019\242\018r\031v\019\222\n\150\019\246\022\166\001\138\n\194\024Z\003\026\n\202\003\030\006\021\001\138\002\154\021\006\019\254\011Z\011\150\011\166\018\138\003&\020\002\001\146\024^\018\142\b\146\003.\015\006\rz\011\174\018\146\018\150\017&\017*\018\154\020\006\011\186\011\198\011\210\021\n\020\n\006r\011\238\b:\017\146\012\n\012\026\012\"\014B\001\150\017\150\b\162\018\158\012>\012F\020\014\020\018\018\162\020\022\001\154\000\n\012V\020*\001\238\012b\005\225\012n\012~\0206\018\170\001\238\012\138\007=\012\150\012\158\012\178\012\218\012\230\r\011\rn\021\014\rr\r\218\020V\000\n\r\222\014J\020Z\020\166\014^\017.\014\134\007=\018\174\014\138\020\170\007=\r\150\000\n\018\182\r\166\006\021\r\198\014\158\014\202\000\n\020\178\014\254\018\186\r\206\b\021\b\021\001\138\018\194\003r\b\021\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\015\014\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\015\"\r\214\001\146\031\246\016\250\015\130\015\134\015\238\015\242\015>\016^\017\n\015N\002~\015n\016r\016\154\002\230\016\158\018\018\017\018\015v\018\022\001\138\016\178\018\026\016\202\016\222\016\254\001\150\002\134\017\006\018.\017\014\017\022\n\245\r\230\001\138\017\030\001\154\017\"\002\246\017J\017^\018>\017j\017r\017v\017~\017\142\018n\018r\017\158\019\222\015~\019\246\017\166\017\170\017\190\016V\003\026\017\198\003\030\0061\000\n\002\154\019\250\019\254\001\146\017f\017\222\018\138\003&\020\002\017\230\017\250\018\142\b\146\003.\018\002\018\014\001\238\018\146\018\150\017&\017*\018\154\020\006\018&\015\142\017\146\015y\020\n\007\245\018:\001\150\017\150\018F\018N\007\245\007\245\018V\0049\b\162\018\158\001\154\0049\020\014\020\018\018\162\020\022!\206\000\n\018^\020*\018z\000\n\005\225\018\130\018\234\0206\018\170\018\246\019.\019^\019\214\020\026\020\"\0202\020:\000\n\020B\021\014\020J\020R\020V\020\162\007\245\020\174\020Z\020\166\0061\017.\020\182\020\194\018\174\020\198\020\170\020\206\020\210\020\218\018\182\0061\0061\020\226\020\234\020\242\0061\020\178\001\138\018\186\021\026\0111\0111\021^\018\194\003r\0111\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\021f\001v\021v\001~\016\242\001\134\002j\002r\002v\016\246\021\134\002\186\021\142\021\146\020^\016\250\021\154\001\138\021\170\021\178\005\201\021\186\017\n\021\190\002~\021\206\021\214\021\238\002\230\021\246\018\018\017\018\022F\018\022\022\142\001\150\018\026\tm\022\154\023\014!\030\002\134\tu\018.\023\026\001\154\n\245\023:\001\146\023f\018>\tm\002\246\016\194\023v\018>\tu\023~\023\154\019\222\023\166\018n\018r\023\174\019\222\023\178\019\246\023\186\023\202\023\222\000\n\003\026\023\250\003\030\024\030\001\150\002\154\019\250\019\254\024*\024:\024B\018\138\003&\020\002\001\154\024R\018\142\b\146\003.\020b\024b\024j\018\146\018\150\017&\017*\018\154\020\006\024n\024v\024\134\004\245\020\n\024\154\024\182\024\202\024\214\tm\024\230\000\n\024\254\002a\tu\b\162\018\158!\142\025\014\020\014\020\018\018\162\020\022\025\026\000\n\025K\020*!\162\025s\025\139\025\183\005\201\0206\018\170!\250\025\207!\166\005\201\005\201\021\014\025\239\004\245\026\007\026\031\021\014\026*\026J\020V\026\182\005\201\005\201\020Z\020\166\026\198\017.\026\247\027N\018\174\027c\020\170\027\139\015\170\tm\018\182\015\186\027\151\015\218\tu\027\167\027\175\020\178\027\202\018\186\015\226\tm\005\201\027\211\018\194\003r\tu\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\027\219\001v\n\249\001~\016\242\001\134\002j\002r\002v\016\246\027\227\018>\015\234\027\254\028\015\016\250\0282\028:\028J\004\245\019\222\028g\017\n\028w\002~\004\245\004\245\028\127\002\230\028\146\018\018\017\018\028\155\018\022\028\163\028\171\018\026\004\245\028\182\028\219\028\231\002\134\028\250\018.\029\003\029\011\n\245\015\250\001\138\029\019\0296\029?\002\246\029G\004\245\018>\029z\029\170\015q\029\234\030\011\018n\018r\004\245\019\222!b\019\246\030\019\030\031\030/\0307\003\026\030C\003\030\030N\030^\002\154\019\250\019\254\001\146\023\162\030k\018\138\003&\020\002\030s\030z\018\142\b\146\003.\030\135\030\147\030\155\018\146\018\150\017&\017*\018\154\020\006\021\014\030\167\017\146\015y\020\n\030\179\030\206\001\150\017\150\031V\031~\031\142\031\194\031\202\031\250\b\162\018\158\001\154 \"\020\014\020\018\018\162\020\022 &\000\n .\020* [!\"!.\015q\015q\0206\018\170!>\015q!F!\131!\139!\146!\159!\182\000\n!\170\021\014!\186!\239\020V!\254\"\011\"/\020Z\020\166\"K\017.\"Z\"b\018\174\"n\020\170\"z\"\135\"\142\018\182\"\150\"\159\"\166\"\175\"\195\000\000\020\178\000\000\018\186\000\000\015y\015y\000\000\018\194\003r\015y\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\007\237\000\000\000\000\000\000\019\242\018r\007\237\007\237\000\000\019\246 \166\000\000\000\000\000\000\003\026\000\000\003\030\000\000\007\237\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\007\237\005\001\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\005\225\000\000\000\000\0206\018\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000!Z\000\000\000\000\000\000\000\000\000\000\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\011\021\011\021\000\000\018\194\003r\011\021\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\004\253\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\005\001\000\000\000\000\017\n\000\000\002~\005\001\005\001\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\005\001\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\242\018r\005\001\000\000!b\019\246\021\"\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\015U\020\n\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\000\000\000\000\000\b\162\018\158\004\253\004\253\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\004\253!*\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\004\253\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\015U\015U\000\000\018\194\003r\015U\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\242\018r\000\000\000\000\000\000\019\246\031Z\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\000\000\000\000\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\015\161\015\161\000\000\018\194\003r\015\161\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\242\018r\000\000\000\000\000\000\019\246\031Z\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\000\000\000\000\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\015\157\015\157\000\000\018\194\003r\015\157\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\016\234\000\000\000\000\000\000\002\134\016\238\018.\000\000\000\000\n\245\031&\000\000\016\242\000\000\000\000\002\246\000\000\016\246\031*\000\000\000\000\000\000\000\000\000\000\019\242\018r\000\000\000\000\000\000\019\246\022\218\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\021~\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\001\146\021\130\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\017\146\000\000\000\000\0206\018\170\001\150\017\150\tm\000\000\000\000\000\000\n\249\000\000\000\000\000\000\001\154\000\000\000\000\020V\000\000\018>\tm\020Z\020\166\000\000\017.\000\000\000\000\018\174\019\222\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\n\020\178\000\000\018\186\000\000\005\245\000\000\000\000\018\194\003r\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\tm\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\016\234\000\000\000\000\000\000\002\134\016\238\018.\021\014\000\000\n\245\031&\000\000\016\242\000\000\000\000\002\246\000\000\016\246\031*\000\000\000\000\000\000\000\000\000\000\025\146\018r\000\000\000\000\000\000\019\246\tm\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\002\154\000\000\019\254\tm\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\021~\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\001\146\021\130\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\017\146\014I\014I\0206\018\170\001\150\017\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\n\020\178\000\000\018\186\000\000\005\245\000\000\000\000\018\194\003r\000R\000V\000f\000\194\000\000\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014I\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\t)\t)\002\230\000\000\018\018\t)\000\000\018\022\000\000\000\000\018\026\014I\000\000\000\000\000\000\002\134\000\000\023Z\000\000\000\000\n\245\000\000\014I\000\000\000\000\000\000\002\246\000\000\014I\014I\000\000\000\000\000\000\000\000\000\000\023j\018r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\022\000\000\000\000\018\138\003&\000\000\000\000\014I\018\142\001\238\003.\000\000\014I\014I\018\146\018\150\017&\023n\018\154\000\000\000\000\000\000\000\000\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\162\018\158\0075\000\000\000\000\000\000\018\162\0075\000\000\000\n\000\000\000n\0075\000\000\0075\000\000\0075\000\000\018\170\0075\0075\0075\000\000\014\n\0075\014\026\0075\000\000\0075\000\000\014\"\0075\r.\0075\0075\0075\0075\0075\000\000\017.\0075\0075\018\174\0075\023r\000\000\000\000\0075\018\182\0075\000\000\000\000\0075\0075\0075\023z\0075\018\186\000\000\0075\0075\0075\018\194\003r\000\000\0075\0075\000\000\0075\000\000\0075\0075\0075\000\000\000\000\0075\002V\000\000\0075\0075\000\000\000Z\0075\000Z\0075\0075\0075\000\000\000\000\0075\014V\000\000\000\000\0075\0075\000Z\0075\014\194\0075\0075\0075\0075\000Z\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\0075\0075\000\000\0075\0075\000\000\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000\000\0075\000\000\000\000\0075\0075\000\000\000\000\0075\0075\0075\000\000\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\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\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\254\000\000\000\000\003\002\000\000\000\000\016\234\000\000\002\134\000\000\000\000\016\238\000\000\000\000\000\000\000\000\031&\000\000\016\242\002\246\000\000\000\000\002\250\016\246\031*\000\000\000\000\000\000\003\150\b\006\000\000\003\018\000\000\000\000\t\n\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\001\138\000\000\000\000\000\000\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\000\000\000\000\t\022\t\026\t\030\000\000\000\000\t\"\003>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\017f\000\000\000\000\017M\000\000\000\000\t&\000\000\000\000\000\000\000\000\t*\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\017\146\000\000\t2\000\000\000\000\001\150\017\150\000\000\017M\017M\000\000\000\000\000\000\t6\000\000\001\154\b\254\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\tB\000\000\000\000\017M\017M\000\000\tJ\t\006\000\000\005Y\n\142\000\000\000\000\017M\000\n\tN\017M\000\000\017M\005\245\tV\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\017M\000\000\000\000\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\002\230\n\154\001\138\000\000\000\000\002\254\000\000\000\000\003\002\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\002\246\000\000\n\158\002\250\017M\000\000\000\000\000\000\000\000\003\150\b\006\000\000\003\018\n\166\000\000\t\n\000\000\000\000\017M\003\026\000\000\003\030\000\000\000\000\002\154\017M\000\000\000\000\000\000\000\000\t\014\003&\000\000\017M\017M\t\018\001\238\003.\000\000\000\000\t\022\t\026\t\030\000\000\000\000\t\"\003>\000\000\005N\005V\000\194\000\000\000\198\000\000\005\178\005\186\005\194\006\030\000\000\006.\0066\000\000\006^\t&\006f\000\000\006n\006\154\t*\006\162\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t2\000\000\000\000\000\000\000\000\006\170\000\000\000\000\000\000\000\000\000\000\t6\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\178\000\000\tB\000\000\000\000\000\000\000\000\000\000\tJ\000\000\000\000\t\173\000\000\000\000\000\000\005Q\000\000\tN\000\000\005Q\000\000\000\000\tV\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\006\194\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\005Q\000\000\000\000\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\002\230\000\000\001\138\000\000\000\000\002\254\000\000\000\000\003\002\005Q\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\005Q\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\150\b\006\000\000\003\018\000\000\000\000\t\n\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\001\225\005Q\005Q\001\225\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\000\000\000\000\t\022\t\026\t\030\000\000\004>\t\"\003>\005Q\005Q\000\000\005Q\001\225\001\225\000\000\000\000\000\000\005Q\005Q\000\000\000\000\000\000\005Q\000\000\t&\000\000\000\000\001\225\000\000\t*\000\000\001\225\000\n\001\225\001\225\000\000\000\000\000\000\000\000\000\000\000\000\t2\000\000\001\225\000\000\000\000\001\225\000\000\001\225\000\000\000\000\000\000\t6\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tB\000\000\000\000\000\000\000\000\000\000\tJ\000\000\000\000\002Q\001\225\000\000\000\000\000\000\000\000\tN\000\000\000\000\000\000\000\000\tV\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\001\225\t~\000\000\001\225\000\000\000\000\000\000\001\225\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\254\000\000\001\225\003\002\000\000\000\000\001\225\001\225\002\134\000\000\000\000\000\000\000\000\t\134\000\000\000\000\000\000\001\225\001\225\002\246\000\000\000\000\002\250\000\000\000\000\000\000\001\138\000\000\003\150\b\006\000\000\003\018\000\000\000\000\t>\000\000\000\000\000\000\003\026\000\000\003\030\000\000\021~\002\154\000\000\000\000\000\000\000\000\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\001\146\021\130\t\022\t\026\t\030\000\000\000\000\t\"\003>\000\000\000\000\000\000\000\000\005B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\146\000\000\000\000\t&\000\000\001\150\017\150\000\000\t*\000\000\000\000\000\n\000\000\000\000\000\000\001\154\000R\000V\000f\000\194\t2\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\n\000\000\000\000\000\000\tB\000\000\000\000\000\000\000\000\000\000\tJ\000\000\000\000\t\189\002~\000\000\000\000\000\000\002\230\tN\001\138\000\000\000\000\002\234\tV\003r\002\238\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\014\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\0152\015:\000\194\000\000\000\198\000\000\015\150\015\158\015\166\016\002\000\000\016\018\016\026\000\000\016B\003B\016J\000\000\016R\016~\003F\016\134\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\016\142\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\150\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\001\133\001\133\001\133\001\133\000\000\001\133\0075\001\133\001\133\001\133\001\133\016\166\001\133\001\133\000\000\001\133\000\000\001\133\0075\001\133\001\133\001\133\001\133\000\000\000\000\000\000\000\000\026\018\000\000\0075\000\000\0075\000\000\000\000\000\000\0075\0075\001\133\001\133\001\133\000\000\0075\000\000\026\022\000\000\000\000\000\000\0075\000\000\001\133\0075\000\000\000\000\000\000\0075\001\133\000\000\000\000\001\133\000\000\0075\000\000\001\133\000\000\000\000\026\"\000\000\000\000\001\133\000\000\000\000\0075\015\026\000\000\000\000\001\133\0075\000Z\000\000\000\000\001\133\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\001\133\001\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\000\000\0075\000\000\000\000\0075\000\000\000\000\0075\000\000\001\133\000\000\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\0075\001\133\0075\0075\000\000\0075\001\133\000\000\001\133\000\000\000\000\001\133\0075\026&\000\000\0075\000\000\000\000\001\133\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\001\133\001\133\000\000\000\000\000\000\001\133\001\133\000\000\000\000\000\000\000R\r\030\r&\000\194\000\000\000\198\026\250\r\130\r\138\r\146\r\238\000\000\r\254\014\006\026.\014.\000\000\0146\000\000\014>\014j\002r\014r\000\000\000\000\000\000\0262\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0266\014z\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\000\000\000\000\030J\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\000\000\000\000\026V\000\000\000\000\000\000\000\000\000\000\000\000\014\146\000\000\000\000\000\000\000\000\027\230\000\000\000\000\000\000\026Z\029R\000\000\000\000\016\250\000\000\014\190\000\000\000\000\000\000\000\000\017\n\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\014\214\000\000\000\000\026^\018.\000\000\026b\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\026f\000\000\000\000\020&\018r\026j\000\n\026n\019\246\026r\026v\000\000\026z\003\026\000\000\003\030\000\000\000\000\000\000\026~\019\254\000\000\026\130\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\026\134\000\000\018\154\020\006\000\000\026\138\026\142\000\000\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\000\000\000\000\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\016\250\000\000\000\000\000\000\018\174\000\000\020\170\017\n\000\000\000\000\018\182\000\000\000\000\002\230\000\000\001\138\017\018\020\178\018\022\018\186\000\000\018\026\016\234\000\000\018\194\003r\000\000\016\238\018.\000\000\000\000\n\245\031&\000\000\016\242\000\000\000\000\002\246\000\000\016\246\031*\000\000\000\000\000\000\000\000\000\000\018\134\018r\000\000\000\000\000\000\019\246\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\000\000\000\000\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\021~\000\000\018\146\018\150\000\000\000\000\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\001\146\021\130\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\017\146\000\000\000\000\0206\018\170\001\150\017\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\020V\000\000\000\000\000\000\020Z\020\166\000\000\000\000\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\n\020\178\000\000\018\186\000\000\005\245\000\000\000\000\018\194\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\011a\011a\002\230\000\000\001\138\011a\024Z\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\001\146\024^\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005B\025\146\018r\000\000\000\000\000\000\000\000\000\000\000\000\017\146\000\000\003\026\000\000\003\030\001\150\017\150\002\154\017\241\000\000\000\000\017\241\000\000\018\138\003&\001\154\000\000\000\000\018\142\001\238\003.\000\000\000\000\000\000\018\146\018\150\000\000\r\141\018\154\000\000\000\000\000\000\000\000\000\000\017\241\017\241\000\000\000\000\000\000\017\241\000\n\000\000\017\241\017\241\000\000\b\162\018\158\000\000\000\000\017\241\000\000\018\162\017\241\017\241\000\n\017\241\017\241\000\000\r\141\017\241\000\000\017\241\017\241\018\170\000\000\017\241\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\000\000\000\000\000\000\r\141\000\000\018\174\000\000\000\000\000\000\000\000\000\000\018\182\000\000\r\141\000\000\017\241\000\000\017\241\000\000\000\000\018\186\000\000\000\000\000\000\000\000\018\194\003r\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\r\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006Y\000\000\000\000\006Y\000\000\000\000\017\241\017\241\000\000\017\241\017\241\017\241\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\006Y\006Y\000\000\006Y\017\241\000\000\017\241\000\000\006Y\006Y\000\000\000\000\017\241\017\241\017\241\006Y\017\241\017\241\017\241\r\137\000\000\006Y\006Y\000\000\000\000\006Y\006Y\006Y\006Y\000\000\000\000\006Y\000\000\000\000\006Y\006Y\006Y\006Y\000\000\000\000\000\000\006Y\000\000\000\000\006Y\006Y\000\000\006Y\006Y\000\000\r\137\006Y\000\000\006Y\006Y\000\000\000\000\006Y\000\000\000\000\006Y\000\000\006Y\006Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\137\000\000\000\000\000\000\000\000\000\000\006Y\000\000\000\000\000\000\r\137\000\000\006Y\000\000\006Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006Y\006Y\006Y\000\000\000\000\b\205\006Y\006Y\006Y\000\000\r\137\000\000\000\000\000\000\000\000\000\000\000\000\006Y\000\000\000\000\000\000\000\000\006Y\000\000\000\000\006Y\000\000\006Y\006Y\006Y\006Y\b\205\006Y\006Y\006Y\000\000\000\000\006Y\006Y\000\000\000\000\000\000\000\000\006Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006Y\000\000\006Y\000\000\000\000\000\000\000\000\000\000\006Y\006Y\006Y\000\000\006Y\006Y\006Y\012\249\012\249\012\249\012\249\000\000\012\249\000\000\012\249\012\249\012\249\012\249\000\000\012\249\012\249\000\000\012\249\000\000\012\249\000\000\012\249\012\249\012\249\012\249\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\249\012\249\012\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\249\000\000\017\161\017\161\000\000\000\000\012\249\017\161\000\000\027\n\003\138\017\161\000\000\027\018\000\000\000\000\000\000\017\161\000\000\012\249\017\161\017\161\000\000\017\161\017\161\000\000\012\249\003\146\000\000\017\161\003\166\012\249\000\000\017\161\000\000\000\000\017\161\000\000\017\161\017\161\012\249\012\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\249\000\000\017\161\012\249\017\161\000\000\012\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\012\249\000\000\000\000\005\002\000\000\012\249\000\000\012\249\000\000\000\000\012\249\000\000\000\000\000\000\000\000\000\000\000\000\012\249\000\000\012\249\000\000\000\000\012\249\017\161\017\161\000\000\017\161\017\161\005\006\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\012\249\012\249\005\014\000\000\000\000\027f\012\249\017\161\000\000\000\000\017\161\017\161\017\161\017\161\017\161\000\000\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\000\000\000\000\000\000\0171\000\000\000\000\003\138\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\0171\000\000\0171\0171\000\000\000\000\003\146\000\000\0171\003\166\000\000\000\000\0171\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\012\233\012\233\012\233\012\233\000\000\012\233\005\002\012\233\012\233\012\233\012\233\000\000\012\233\012\233\000\000\012\233\000\000\012\233\000\000\012\233\012\233\012\233\012\233\000\000\000\000\000\000\0171\0171\000\000\0171\0171\005\006\000\000\0171\000\000\000\000\000\000\012\233\012\233\012\233\000\000\000\000\005\014\000\000\000\000\000\000\000\000\0171\000\000\012\233\0171\0171\0171\0171\0171\012\233\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\005N\005V\000\194\012\233\000\198\000\000\005\178\005\186\005\194\006\030\012\233\006.\0066\000\000\006^\012\233\006f\000\000\006n\006\154\000\000\006\162\000\000\000\000\012\233\012\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\170\000\000\000\000\000\000\000\000\000\000\002\162\000\000\000\000\000\000\012\233\000\000\000\000\012\233\000\000\000\000\012\233\006\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\233\000\000\000\000\000\000\000\000\012\233\000\000\012\233\000\000\000\000\012\233\000\000\000\000\000\000\000\000\000\000\000\000\012\233\000\000\012\233\000\000\000\000\012\233\006\194\000\000\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\233\012\233\000\000\000\000\000\000\027\014\012\233\012\237\012\237\012\237\012\237\000\000\012\237\000\000\012\237\012\237\012\237\012\237\000\000\012\237\012\237\000\000\012\237\000\000\012\237\000\000\012\237\012\237\012\237\012\237\000\000\000\000\006a\000\n\000\000\006a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\237\012\237\012\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\237\000\000\006a\006a\000\000\000\000\012\237\006a\000\000\027j\006a\006a\000\000\000\000\000\000\000\000\000\000\006a\000\000\012\237\006a\006a\000\000\006a\006a\000\000\012\237\006a\000\000\006a\006a\012\237\000\000\006a\000\000\000\000\006a\000\000\006a\006a\012\237\012\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\237\000\000\006a\012\237\006a\000\000\012\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006a\000\000\000\000\000\000\012\237\000\000\000\000\006a\000\000\012\237\000\000\012\237\000\000\000\000\012\237\000\000\000\000\000\000\000\000\000\000\000\000\012\237\000\000\012\237\000\000\000\000\012\237\006a\006a\000\000\006a\b\217\006a\000\000\006a\000\000\000\000\000\000\000\000\000\000\000\000\012\237\012\237\006a\000\000\000\000\006]\012\237\006a\006]\000\000\006a\000\000\006a\000\000\006a\000\000\000\000\000\000\006a\006a\006a\000\000\006a\006a\006a\000\000\000\000\000\000\000\000\000\000\000\000\006]\006]\000\000\000\000\000\000\006]\000\000\000\000\006]\006]\000\000\000\000\000\000\017e\000\000\006]\000\000\000\000\006]\006]\000\000\006]\006]\000\000\000\000\006]\000\000\006]\006]\000\000\000\000\006]\000\000\000\000\006]\000\000\006]\006]\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\000\000\006]\000\000\006]\000\000\000\000\b:\000\000\017e\000\000\000\000\017e\000\000\017e\006]\000R\r\030\r&\000\194\000\000\000\198\006]\r\130\r\138\r\146\r\238\000\000\r\254\014\006\000\000\014.\000\000\0146\000\000\014>\014j\002r\014r\000\000\000\000\017e\006]\006]\000\000\006]\b\209\006]\000\000\006]\000\000\000\000\000\000\027r\014z\027\142\000\000\000\000\006]\000\000\000\000\000\000\000\000\006]\000\000\027\154\006]\000\000\006]\000\000\006]\014\130\000\000\000\000\006]\006]\006]\000\000\006]\006]\006]\017e\000\000\000\000\027\178\000\000\000\000\000\000\017e\000\000\000\000\014\146\000\000\000\000\000\000\000\000\027\230\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\028\006\014\190\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\030\014\214\000\000\b\"\028\018\000\000\000\000\028j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\028\130\000\000\000\000\000\000\000\000\028\174\000\000\n\221\b>\bJ\028\222\000\000\bb\bz\b~\000\000\000\000\028\234\003\026\029\022\003\030\000\000\030\022\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\030\"\030:\000\000\b\150\b\154\000\000\030F\b\158\001\154\000\000\000\000\000\000\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\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007U\000\000\b\182\000\000\b\198\002\230\000\000\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\b\206\000\000\000\000\000\000\000\000\000\000\b\214\000\000\000\000\000\000\000\000\000\000\005i\000\000\002\246\b\218\000\000\000\000\000\000\000\000\b\226\003r\000\000\b>\bJ\000\000\000\000\bb\bz\b~\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\000\000\000\000\000\000\b\150\b\154\000\000\000\000\b\158\001\154\000\000\000\000\000\000\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\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007U\000\000\b\182\000\000\b\198\002\230\000\000\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\b\206\000\000\000\000\000\000\000\000\000\000\b\214\000\000\000\000\000\000\000\000\000\000\n\001\000\000\002\246\b\218\000\000\000\000\000\000\000\000\b\226\003r\000\000\b>\bJ\000\000\n\226\bb\bz\b~\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\n\234\n\242\000\000\b\150\b\154\000\000\000\000\b\158\001\154\000\000\000\000\000\000\000\000\000\000\000\000\n\250\000\000\000\000\000\000\000\000\000\000\011\002\011\n\000\000\b\162\b\166\000\000\000\000\000\000\000\000\b\170\011\018\000\000\000\n\011\026\000\000\011\"\000\000\000\000\000\000\000\000\000\000\b\178\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\007U\000\000\b\182\000\000\b\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011*\000\000\000\000\b\206\000\000\000\000\000\000\017\185\017\185\b\214\000\000\000\000\017\185\000\000\000\000\002\129\017\185\000\000\b\218\000\000\000\000\000\000\017\185\b\226\003r\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\017\185\000\000\b:\000\000\017\185\000\000\0112\017\185\000\000\017\185\017\185\000\000\000\000\011:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\000\000\006\173\000\000\017\185\000\000\017\185\000\000\000\000\000\000\011B\011J\000\000\000\000\000\000\000\000\000\000\017\185\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\002~\017I\000\000\000\000\017I\000\000\002\162\000\000\000\000\017\185\000\000\000\000\017\185\017\185\017\185\017\185\017\185\002\134\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\017I\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\002\150\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\017I\000\000\017I\017I\000\000\000\000\002\154\000\000\017I\000\000\b:\000\000\017I\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017&\017*\000\000\014\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\017I\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\017I\005\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007M\017.\017I\017I\000\000\017I\017I\000\000\000\000\017I\000\000\007M\000\000\000\000\000\000\017\133\007M\000\000\017\133\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\017I\017I\017I\017I\000\000\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\017\133\017\133\000\000\000\000\000\000\017\133\000\000\000\000\018\218\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\018\226\000\000\017\133\018\238\000\000\000\000\017\133\000\000\000\000\017\133\000\000\017\133\017\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\000\000\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\133\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\018\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\000\000\017\133\000\000\018\254\002\230\017\133\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\019\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\000\000\000\000\002\246\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\b>\bJ\000\000\000\000\bb\bz\011r\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\000\000\000\000\000\000\b\150\b\154\000\000\000\000\b\158\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\001\209\000\000\000\000\000\000\b\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\001\209\000\n\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\b\178\001\209\001\209\000\000\000\000\000\000\001\209\000\000\000\000\007U\001\209\000\000\000\000\b\198\000\000\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\b\206\001\209\000\000\000\000\001\209\000\000\b\214\001\209\001\209\000\000\001\209\001\209\n\017\001\209\001\209\b\218\000\000\000\000\000\000\001\209\b\226\003r\000\000\001\209\000\000\000\000\001\209\000\000\001\209\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\174\000\000\001\209\001\209\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\182\000\000\001\209\001\209\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001Y\000\000\000\000\001Y\004\242\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\001\209\001\209\000\000\000\000\000\000\000\000\004\230\001\209\001\209\000\000\001\209\001\209\001\209\001Y\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001Y\001Y\000\000\001Y\001Y\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\003\246\000\000\004\006\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\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\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\005I\005I\005I\005I\000\000\005I\000\000\005I\005I\005I\005I\000\000\005I\005I\000\000\005I\000\000\005I\000\000\005I\005I\005I\005I\000\000\000\000\000\000\001Y\000\000\000\000\001Y\001Y\000\000\002\202\003\254\000\000\000\000\000\000\000\000\005I\001M\000\000\000\000\001M\000\000\005I\000\000\000\000\001Y\000\000\000\000\001Y\001Y\001Y\001Y\001Y\005I\000\000\000\000\000\000\001Y\001Y\000\000\001Y\001Y\001Y\001M\001M\000\000\000\000\000\000\001M\000\000\000\000\000\000\001M\005I\000\000\000\000\000\000\000\000\001M\005I\000\000\001M\001M\000\000\001M\001M\000\000\000\000\005I\000\000\001M\000\000\000\000\000\000\001M\000\000\000\000\003\246\000\000\001M\001M\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\005I\000\000\000\000\000\000\001M\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001M\000\000\000\000\001M\001M\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001Q\005I\000\000\001Q\000\000\002\162\000\000\000\000\001M\000\000\000\000\001M\001M\001M\001M\001M\002\134\000\000\000\000\000\000\001M\001M\000\000\001M\001M\001M\001Q\001Q\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\002\166\000\000\000\000\000\000\000\000\001Q\002\194\000\000\001Q\001Q\000\000\001Q\001Q\000\000\000\000\002\154\000\000\001Q\000\000\000\000\000\000\001Q\000\000\000\000\003\246\000\000\001Q\001Q\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001Q\000\000\000\000\000\000\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\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001U\015\017\000\000\001U\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\001Q\001Q\001Q\000\000\000\000\000\000\000\000\001Q\001Q\000\000\001Q\001Q\001Q\001U\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001U\001U\000\000\001U\001U\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\003\246\000\000\004\006\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001U\000\000\000\000\001U\001U\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001e\000\000\000\000\001e\000\000\002\162\000\000\000\000\001U\000\000\000\000\001U\001U\001U\001U\001U\002\134\000\000\000\000\000\000\001U\001U\000\000\001U\001U\001U\003\230\004\014\000\000\000\000\000\000\001e\000\000\000\000\000\000\001e\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001e\001e\000\000\001e\001e\000\000\000\000\002\154\000\000\001e\000\000\000\000\000\000\001e\000\000\000\000\003\246\000\000\004\006\001e\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001e\000\000\000\000\000\000\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\198\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\001e\001e\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001]\002\181\000\000\001]\000\000\000\000\000\000\000\000\001e\000\000\000\000\001e\001e\001e\001e\001e\000\000\000\000\000\000\000\000\001e\001e\000\000\001e\001e\001e\003\230\004\014\000\000\000\000\000\000\001]\000\000\000\000\000\000\001]\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001]\001]\000\000\001]\001]\000\000\000\000\000\000\000\000\001]\000\000\000\000\000\000\001]\000\000\000\000\003\246\000\000\004\006\001]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001]\000\000\000\000\001]\001]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001a\000\000\000\000\001a\000\000\002\162\000\000\000\000\001]\000\000\000\000\001]\001]\001]\001]\001]\002\134\000\000\000\000\000\000\001]\001]\000\000\001]\001]\001]\003\230\004\014\000\000\000\000\000\000\001a\000\000\000\000\000\000\001a\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001a\001a\000\000\001a\001a\000\000\000\000\002\154\000\000\001a\000\000\000\000\000\000\001a\000\000\000\000\003\246\000\000\004\006\001a\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001a\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001i\002\173\000\000\001i\000\000\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\001a\001a\001a\002\134\000\000\000\000\000\000\001a\001a\000\000\001a\001a\001a\003\230\004\014\000\000\000\000\000\000\001i\000\000\000\000\000\000\001i\002\150\000\000\000\000\000\000\000\000\003\238\007\014\000\000\001i\001i\000\000\001i\001i\000\000\000\000\002\154\000\000\001i\000\000\007\018\007\022\004\022\000\000\000\000\003\246\000\000\004\006\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\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\004\030\000\000\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i\000\000\000\000\000\000\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\030\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\001i\001i\000\000\000\000\003\254\000\000\000\000\000\000\005y\000\000\001q\000\000\000\000\001q\000\000\000\000\000\000\000\000\001i\000\000\000\000\001i\001i\001i\001i\001i\000\000\000\000\000\000\000\000\001i\001i\000\000\001i\001i\001i\003\230\004\014\000\000\000\000\000\000\001q\000\000\000\000\000\000\001q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001q\001q\000\000\001q\001q\000\000\000\000\000\000\000\000\001q\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\000\000\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\001q\001q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004\134\000\000\000\000\001m\000\000\000\000\000\000\000\000\001q\000\000\000\000\001q\001q\001q\001q\001q\002\134\000\000\000\000\000\000\001q\001q\000\000\001q\004.\001q\003\230\004\014\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\002\150\000\000\000\000\000\000\000\000\003\238\007\014\000\000\001m\001m\000\000\001m\001m\000\000\000\000\002\154\000\000\001m\000\000\007\018\007\022\004\022\000\000\000\000\003\246\000\000\004\006\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\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\004\030\000\000\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001m\000\000\000\000\000\000\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\030\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\001m\001m\000\000\000\000\003\254\000\000\000\000\000\000\n9\000\000\004\134\000\000\000\000\001u\000\000\000\000\000\000\000\000\001m\000\000\000\000\001m\001m\001m\001m\001m\000\000\000\000\000\000\000\000\001m\001m\000\000\001m\004.\001m\003\230\004\014\000\000\000\000\000\000\001u\000\000\000\000\000\000\001u\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001u\001u\000\000\001u\004\142\t\194\000\000\000\000\t\202\001u\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\218\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\004\030\t\234\001u\000\000\000\000\0025\000\000\t\242\t\250\000\000\000\000\000\000\000\000\001u\000\000\000\000\000\000\n\002\000\000\000\000\n\n\004%\n\018\000\000\000\000\000j\004%\000\000\000z\000\000\000\154\004%\000\000\004%\000\000\000\000\000\000\000\162\004%\004%\004&\000\000\000\000\001u\001u\000\000\000\000\003\254\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\001u\000\000\000\000\001u\001u\001u\001u\001u\000\000\000\170\004%\000\000\001u\001u\004%\001u\004.\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\"\004%\004%\0025\000\000\000\000\000\000\n*\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\186\000\000\000\000\000\000\000\000\0025\000\000\004%\000\000\0025\0025\000\000\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\n2\n:\004%\000\000\004!\000\000\004%\000\000\000\222\004!\000\000\000\238\000\000\001\014\004!\000\000\004!\004%\000\000\000\000\001\022\004!\004!\000\000\000\000\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\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\004!\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\004%\000\000\000\000\004%\004!\004!\000\000\003\218\004%\004%\0046\000\000\000\000\004%\000\000\000\000\000\000\004!\000\000\001.\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\004!\004!\004f\004n\000\189\000\000\000\000\002-\000\000\000\000\004!\002-\000\000\000\000\004!\000\000\000\000\004v\000\000\000\000\002-\002-\000\165\004~\004\158\004!\000\000\000\000\000\000\002-\003\230\004\014\000\000\004\166\000\000\004!\004\174\000\000\004\182\002-\004!\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\165\000\165\000\000\000\189\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\003\238\003\246\004\190\004\006\002-\000\000\000\165\000\165\000\000\000\000\004!\000\000\000\000\004!\004!\002-\000\165\004!\000\000\003\246\000\000\004\006\004!\004!\000\000\000\000\000\000\004!\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\198\000\000\000\000\002-\002-\000\000\000\165\004\206\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\000\000\000\000\000\000\000\002-\000\000\000\000\002-\002-\002-\002-\004&\000\000\000\000\000\000\000\000\002-\002-\003\254\004\214\004\222\002-\003\230\004\014\000\000\000\000\000\000\000\129\000\000\000\165\000\000\000\129\000\189\000\000\000\000\000\000\003\254\003\238\000\000\000\189\000\129\000\129\000\000\000\129\000\129\000\000\000\000\000\189\004.\000\129\000\165\000\000\000\000\004\022\000\000\000\000\003\246\000\165\004\006\000\129\000\000\000\000\000\000\000\000\000i\000\165\000\165\000i\000\000\000\000\000\000\000\000\000\000\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\030\000\000\000\129\000\000\000\000\000i\000i\000\000\000\000\000\000\000i\000\000\000\000\000\129\000i\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000i\000i\000\000\000i\000i\000\000\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\003\246\004&\004\006\000i\000\129\000\129\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\129\000\129\000\129\000i\000\000\000i\000\000\000\000\000\129\000\129\000\000\000\129\004.\000\129\000\000\000\000\000i\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000e\000\000\000\000\000e\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\002\134\000\000\000\000\000\000\000i\000i\000\000\000i\000i\000i\000e\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\002\150\000\000\000\000\000\000\000\000\003\238\007\014\000\000\000e\000e\000\000\000e\000e\000\000\000\000\002\154\000\000\000e\000\000\007\018\007\022\000e\000\000\000\000\003\246\000\000\004\006\000e\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\007\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\000e\000\000\000e\000\000\000\000\000]\000]\000\000\000\000\000\000\000]\000\000\000\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\007\030\000\000\000\000\000]\000\000\000\000\000\000\000]\000\000\000\000\003\246\000e\000]\000]\000e\000e\000\000\000\000\003\254\000\000\000\000\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000e\000e\000]\000\000\000]\000\000\000\000\000e\000e\000\000\000e\000e\000e\000\000\000\000\000]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004\134\000\000\000\000\000\137\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000]\000]\000\000\002\134\000\000\000\000\000\000\000]\000]\000\000\000]\000]\000]\003\230\004\014\000\000\000\000\000\000\000\137\000\000\000\000\000\000\000\137\002\150\000\000\000\000\000\000\000\000\003\238\031\206\000\000\000\137\000\137\000\000\000\137\004\142\000\000\000\000\002\154\000\000\000\137\000\000\031\210\007\022\004\022\000\000\000\000\003\246\000\000\004\006\000\137\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000}\000\000\007\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\004\030\000\000\000\137\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000}\000\000\000\000\000\137\000}\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000}\000}\000\000\000}\000}\000\000\031\214\000\000\000\000\000}\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000}\000\137\000\137\000\000\000\000\003\254\000\000\000\000\000\000\005q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\137\000\000\000\000\000\137\000\137\000\137\000\137\004\030\000\000\000}\000\000\000\000\000\137\000\137\000\000\004\150\004.\000\137\000\000\000\000\000}\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\000}\000}\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000u\000\000\000\000\000u\000\000\000\000\000\000\000\000\000}\000\000\000\000\000}\000}\000}\000}\000\000\002\134\000\000\000\000\000\000\000}\000}\000\000\000}\004.\000}\003\230\004\014\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\002\150\000\000\000\000\000\000\000\000\003\238\031\206\000\000\000u\000u\000\000\000u\000u\000\000\000\000\002\154\000\000\000u\000\000\031\210\007\022\000u\000\000\000\000\003\246\000\000\004\006\000u\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000\000\007\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\004\030\000\000\000u\000\000\000\000\000a\000a\000\000\000\000\000\000\000a\000\000\000\000\000u\000a\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000\000\031\214\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\003\246\000u\000a\000a\000u\000u\000\000\000\000\003\254\000\000\000\000\000\000\n\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000u\000u\000a\000\000\000a\000\000\000\000\000u\000u\000\000\000u\000u\000u\000\000\000\000\000a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\002\134\000\000\000\000\000\000\000a\000a\000\000\000a\000a\000a\003\230\004\014\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\002\150\000\000\000\000\000\000\000\000\003\238\031\206\000\000\000m\000m\000\000\000m\000m\000\000\000\000\002\154\000\000\000m\000\000\031\210\007\022\000m\000\000\000\000\003\246\000\000\004\006\000m\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000\000\007\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\000m\000\000\000m\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000q\000\000\000\000\000m\000q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000q\000q\000\000\000q\000q\000\000\031\214\000\000\000\000\000q\000\000\000\000\000\000\000q\000\000\000\000\003\246\000m\004\006\000q\000m\000m\000\000\000\000\003\254\000\000\000\000\000\000\002\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000m\000m\000m\004\030\000\000\000q\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004\134\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000q\000q\000\000\002\134\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\003\230\004\014\000\000\000\000\000\000\000\133\000\000\000\000\000\000\000\133\002\150\000\000\000\000\000\000\000\000\003\238\007&\000\000\000\133\000\133\000\000\000\133\004\142\000\000\000\000\002\154\000\000\000\133\000\000\007\018\007\022\004\022\000\000\000\000\003\246\000\000\004\006\000\133\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000\000\007\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\004\030\000\000\000\133\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000y\000\000\000\000\000\133\000y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000y\000\133\000\133\000\000\000\000\003\254\000\000\000\000\000\000\nI\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\133\000\133\000\133\000\133\004\030\000\000\000y\000\000\000\000\000\133\000\133\000\000\000\133\004.\000\133\000\000\000\000\000y\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\030\0075\016.\000\000\000\000\000\000\000\000\0166\000\000\000\000\000\000\000\000\000\000\0075\004&\000\000\000\000\000y\000y\000\000\000\000\003\254\000\000\000\000\0075\000\000\0075\012\253\012\253\000\000\0075\0075\000\000\012\253\000\000\000y\0075\000\000\000y\000y\000y\000y\0075\000\000\000\000\0075\000\000\000y\000y\0075\000y\000y\000y\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\016j\000\000\012\253\000\000\0075\000Z\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\012\253\000\000\0075\000\000\000\000\0075\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000\000\002\246\000\000\000\000\002\250\0075\000\000\000\000\0075\000\000\003\006\003\n\000\000\003\018\000\000\b\194\000\000\000\000\000\000\000\000\003\026\000\000\003\030\0075\000\000\000\000\000\000\000\000\0075\0075\012\253\003\"\003&\000\000\000\000\011\142\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\r>\0075\rN\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\0075\000\000\000\000\000\000\003F\000\000\000\000\000\n\r\170\0075\r\186\0075\000\000\0075\000\000\000\000\003N\0075\0075\000\000\000\000\0075\000\000\0075\0075\000\000\000\000\003R\n\237\0075\000\000\000~\0075\000\142\0075\000\000\0075\000\000\0075\0075\003V\0075\0075\000\000\0075\000\000\003b\000\000\000\000\n\237\0075\n\237\000\000\0075\016\170\003z\000\000\0075\0075\000Z\003j\003r\0075\0075\0075\015R\0075\015b\015\190\0075\015\206\000\000\000\000\000\000\0075\016\214\000\000\000\000\0075\0075\000Z\0075\000\000\000\130\0075\0075\0075\000\000\000\000\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000Z\0075\0075\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\0075\000Z\0075\0075\000Z\000\000\0075\0075\0075\0075\000\000\0075\0075\000\000\000\000\000\000\000\000\000Z\000\000\0075\0075\000\000\000\000\000\000\0075\000\000\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\0075\000\000\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\000\000\0075\000\000\0075\000\000\017\157\0075\0075\017\157\0075\000\000\0075\000\000\000\000\0075\000\000\001R\000\000\001b\0075\000\000\0075\000\000\001j\0075\000\000\0075\0075\000\000\0075\0075\017\157\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\0075\000\000\017\157\0075\0075\017\157\017\157\0075\017\157\017\157\000\000\000\000\0075\0075\017\157\0075\b:\0075\017\157\0075\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\002\158\000\000\0075\rB\000\000\000Z\000\000\000\000\0075\000\000\000\000\017\157\000\000\017\157\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\017\157\0075\0075\0075\000\000\000\000\000\000\0075\0075\006:\000\000\006J\0075\0075\0075\000\000\006R\000\000\000\000\0075\0075\000\000\0075\0075\000\000\000\000\0075\017\157\017\157\000\000\017\157\000\000\0075\0075\017\157\000\000\000\000\000\000\0075\000\000\0075\000\000\000\000\0075\000\000\0075\r\154\000\000\0075\000Z\000\000\017\157\0075\017\157\0075\000\000\0075\0075\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\000Z\0075\0075\0075\000\000\0075\000\000\0075\0075\000\000\000\000\000\000\0075\000\000\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\000\000\0075\000\000\0075\000\000\0075\0075\000Z\0075\000\000\000\000\000\000\0075\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\000\000\000\000\0075\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\000\000\002\246\0075\000\000\002\250\0075\000\000\0075\0075\000\000\003\006\003\n\0075\003\018\000\000\b:\000\000\000\000\000\000\000\000\003\026\000\000\003\030\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\0075\r\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\0075\r\242\000\000\000\000\003F\000\000\000\000\000\n\0075\014\014\000\000\0075\0075\0075\000\000\000\000\003N\0075\0075\000\000\0075\000\000\000\000\0075\000\000\0075\000\000\003R\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\000\000\003V\0075\0075\0075\0075\000\000\003b\000\000\0075\0075\000\000\000\000\0075\0075\0075\003z\0075\000\000\0075\000Z\003j\003r\0075\015B\0075\0075\000\000\000\000\000\000\000\000\0075\000Z\000\000\0075\0075\015V\0075\000\000\0075\000Z\000\000\0075\015\174\000\000\0075\0075\0075\0075\000\000\0075\000\000\0075\0075\0075\015\194\000\000\000\000\0075\0075\0075\000\000\0075\000\000\0075\0075\0075\0075\016\006\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\016\"\000\000\0075\0075\0075\0075\0075\0075\0075\0075\0075\0075\0075\000Z\0075\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\000Z\0075\0075\0075\0075\0075\0075\000Z\000\000\0075\000\000\000\000\0075\0075\0075\0075\000\000\0075\0075\000Z\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\000Z\0075\0075\000\000\000\000\0075\000\000\0075\0075\0075\000\000\0075\0075\000Z\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000\000\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\000\000\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\0075\000\000\000\000\000\000\0075\0075\000\000\0075\000\000\000\000\0075\002\230\0075\001\138\000\000\000\000\002\234\0075\0075\002\238\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\0182\0075\0075\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\001\233\000\000\000\000\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\001\233\001\233\000\000\000\000\000\000\001\233\000\000\000\000\000\000\001\233\000\000\000\000\003B\000\000\000\000\001\233\000\000\003F\001\233\001\233\000\n\001\233\001\233\000\000\000\000\000\000\000\000\001\233\000\000\003N\000\000\001\233\000\000\000\000\001\233\000\000\001\233\001\233\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\001\233\000\000\001\233\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\000\000\001\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\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\000\000\000\000\000\000\001\233\019\026\000\000\001\233\n\237\000\000\000\000\001\233\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\001\233\000\000\001\233\000\000\000\000\003\026\000\000\003\030\019\"\001\233\001\233\000\000\001\233\001\233\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\003B\000\000\000\000\000\000\000\000\003F\000\000\023^\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003z\000\000\003:\003>\0075\003j\003r\000\000\000\000\0075\000\000\000\242\000\000\001\002\0075\000\000\0075\000\000\000\000\000\000\003B\0075\0075\000\000\000\000\003F\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\0075\000\000\000\000\003V\000\000\002\230\000\000\001\138\000\000\003b\002\234\000\000\000\000\002\242\000\000\0075\0075\000\000\003z\000\000\006\134\000\000\000\000\003j\003r\000Z\000\000\000\000\0075\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\0075\003\006\012v\000\000\003\018\0075\0075\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\0075\000\000\000\000\000\000\0075\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\0075\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\003N\002\242\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\0075\003R\000\000\0075\000\000\000\000\000\000\002\246\0075\0075\002\250\000\000\000\000\0075\003^\000\000\003\006\012f\000\000\003\018\003b\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\003f\000\000\000\000\000\000\000\000\003j\003r\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\012N\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\000\000\003j\003r\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003J\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\0075\003j\003r\000\000\000\000\0075\000\000\005n\000\000\005~\0075\n\229\0075\000\000\000\000\000\000\003B\0075\0075\000\000\0075\003Z\000\000\n\229\000\n\0075\000\000\005\218\000\000\005\234\0075\000\000\0075\003N\n\229\000\000\n\229\0075\0075\000\000\n\229\000\000\000\000\000\000\003R\000\000\n\229\000\000\000\000\000\000\0075\000\000\n\229\000\000\0075\n\229\000\000\003^\0075\n\229\027\022\000\000\000\000\003b\000\000\n\229\000\000\000\000\000\000\0075\0075\000\000\003f\000\000\0075\000\000\000\000\003j\003r\000Z\000\000\n\229\0075\000\000\000\000\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\000\000\006\198\000\000\0075\0075\000\000\000Z\000\000\000\000\0075\000\000\000\000\000\000\0075\000\000\000\000\000\000\0075\0075\n\229\000\000\000\000\n\229\0075\0075\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\000\000\n\229\000\000\0075\0075\000\000\n\229\n\229\n\229\0075\n\229\n\229\000\000\n\229\0075\000\000\000\000\000\000\000\000\000\000\n\229\000\000\000\000\n\229\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\229\000\000\000\000\000\000\0075\n\229\n\229\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\002\230\000\000\001\138\0075\000\000\002\254\0075\000\000\003\002\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\022\b\006\000\000\003\018\000\000\b\026\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\000\161\000\000\000\000\t\026\t\030\000\000\000\000\t\"\003>\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\t&\000\161\000\161\000\000\000\000\t*\000\000\000\000\000\n\002\246\000\000\000\000\002\250\000\000\000\000\000\000\003\238\t2\003\006\b&\000\000\003\018\000\161\000\161\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\161\000\000\000\000\003\246\000\000\004\006\000\000\003\"\003&\tB\000\000\000\000\003*\001\238\003.\tJ\000\000\000\000\0032\0036\000\000\000\000\003:\003>\tN\000\000\000\000\000\000\000\000\tV\003r\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\012\022\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\0051\000\000\0051\000\000\000\000\0051\000\000\003R\0051\000\000\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\003\254\000\000\003^\000\000\000\000\000\000\0051\000\000\003b\0051\000\000\000\000\000\000\000\000\000\161\0051\0051\003f\0051\000\000\000\000\000\161\003j\003r\000\000\0051\000\000\0051\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\0051\0051\000\000\000\000\000\000\0051\0051\0051\000\000\000\000\000\000\0051\0051\000\000\000\000\0051\0051\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\0051\000\000\000\000\000\000\000\000\0051\000\000\000\000\0051\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\0051\003\006\018\030\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\"\003&\0051\000\000\000\000\003*\001\238\003.\0051\000\000\000\000\0032\0036\000\000\000\000\003:\003>\0051\000\000\000\000\000\000\000\000\0051\0051\000\000\000\000\000\000\000\000\026.\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\0262\000\n\000\000\000\000\000\000\000\000\000\000\028\178\000\000\000\000\003N\0266\000\000\026:\rQ\rQ\000\000\026>\000\000\000\000\000\000\003R\000\000\026B\000\000\000\000\000\000\000\000\000\000\026F\000\000\000\000\026N\000\000\003^\000\000\026R\000\000\000\000\000\000\003b\000\000\026V\000\000\000\000\000\000\000\000\000\000\000\000\003f\000\000\000\000\000\000\026.\003j\003r\rQ\000\000\026Z\000\000\000\000\000\000\000\000\000\000\000\000\0262\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\r%\000\000\rQ\026B\026^\000\000\000\000\026b\000\000\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\027\190\000\000\026f\000\000\026V\000\000\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\029.\028B\000\000\r%\000\000\026Z\026~\000\000\000\000\026\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\026\134\000\000\000\000\000\000\0075\026\138\026\142\rQ\000\000\0075\r%\000\000\026^\000\226\0075\026b\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\000\000\000\000\026f\000\000\000\000\000\000\000\000\026j\000\n\026n\0075\026r\026v\000\000\026z\0075\0075\0075\000\000\000\246\0075\026~\0075\000\000\026\130\000\000\001:\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\000\000\026\134\001V\0075\000\000\0075\026\138\026\142\r%\0075\0075\0075\0075\000\000\007\206\000\000\000\000\0075\000\000\000Z\000\000\005^\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\005r\0075\005\202\0075\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000Z\000\000\005\222\0075\000\000\0075\000\000\000Z\000\000\000\000\0075\0075\0075\000\000\000\000\0075\012\170\0075\0075\0075\0075\000Z\0075\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\006\"\0075\0075\0075\000Z\0075\0075\0075\0075\0075\000\000\0075\0075\0075\000\000\000Z\0075\000Z\0075\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\006>\0075\0075\0075\0075\0075\000Z\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\0075\000Z\0075\0075\0075\0075\0075\000\000\000\000\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\000\000\0075\0075\000\000\000Z\0075\000\000\0075\000\000\0075\0075\0075\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\0075\0075\0075\0075\000\000\0075\000\000\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\0075\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\000\000\000\000\0075\0075\019N\000\000\0075\019V\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\019f\019n\0075\0075\000\000\002=\0075\000\000\000\000\002=\000\000\0075\0075\000\000\000\000\019v\0075\000\000\002=\002=\000\000\019~\019\134\000\000\000\000\000\000\0015\002=\000\000\0015\000\000\019\142\000\000\000\000\019\150\000\000\019\158\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\003\230\004\014\000\000\000\000\000\000\0015\000\000\000\000\000\000\0015\000\000\019\166\000\000\002=\000\000\003\238\000\000\000\000\0015\0015\000\000\0015\0015\000\000\002=\000\000\000\000\0015\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0015\000\000\000\000\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\019\174\001F\001N\002=\001v\000\000\001~\019\182\001\134\002j\002r\002v\004\030\000\000\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002=\0015\002=\002~\000\000\000\000\000\000\000\000\000\000\002=\002=\000\000\019\190\019\198\002=\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0015\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002\150\001\029\000\000\000\000\001\029\000\000\031\222\000\000\000\000\000\000\000\000\000\000\0015\000\000\0015\002\154\000\000\000\000\000\000\031\210\007\022\0015\0015\000\000\0015\004.\0015\001\029\001\029\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\029\007\026\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\000\000\001\025\001\029\000\000\001\025\000\000\001\029\000\000\000\000\003\246\000\000\004\006\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\001\025\001\025\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\001\029\000\000\001\029\000\000\003\238\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\001\029\n-\000\000\001\025\000\000\000\000\000\000\001\025\000\000\000\000\003\246\000\000\004\006\001\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\001\029\000\000\000\000\001\029\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\025\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\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\001\025\000\000\000\000\001\025\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\001\025\001\025\001\025\001\017\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\000\000\000\000\004\134\001\017\000\000\001=\000\000\001\017\000\000\000\000\003\246\000\000\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\001\017\000\000\001\017\000\000\003\238\000\000\000\000\001=\001=\000\000\001=\004\142\000\000\001\017\000\000\000\000\001=\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001=\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\001=\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\0011\000\000\000\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\001=\001=\000\000\004\150\004.\001=\003\230\004\014\000\000\000\000\000\000\0011\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\0011\0011\000\000\0011\0011\000\000\000\000\000\000\001)\0011\000\000\001)\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0011\000\000\000\000\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\230\004\014\000\000\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\004\030\000\000\0011\000\000\003\238\000\000\000\000\001)\001)\000\000\001)\001)\000\000\0011\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\000\000\003\246\000\000\004\006\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0011\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\001)\0011\000\000\000\000\000\000\000\000\000\000\000\000\0011\0011\000\000\0011\004.\0011\000\000\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\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\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\001)\001)\000\000\001)\001)\001)\001\021\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\000\000\000\000\001!\001\021\000\000\001!\000\000\001\021\000\000\000\000\003\246\000\000\001\021\001\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\000\000\000\000\003\230\004\014\000\000\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\001\021\000\000\001\021\000\000\003\238\000\000\000\000\001!\001!\000\000\001!\001!\000\000\001\021\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\000\000\003\246\000\000\004\006\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\000\000\003\254\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\001\021\001!\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\001\021\001\021\001\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\000\000\001!\000\000\000\000\001!\000\000\000\000\000\000\003\254\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\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\001!\001!\003\230\004\014\000\000\000\000\000\000\001%\000\000\000\000\000\000\001%\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\000\000\004\134\001%\000\000\0019\000\000\001%\000\000\000\000\003\246\000\000\004\006\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\153\000\000\000\000\0019\000\000\000\000\000\000\0019\000\000\004\030\000\000\001%\000\000\003\238\000\000\000\000\0019\0019\000\000\0019\004\142\000\000\001%\000\000\000\000\0019\000\153\000\153\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0019\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\001%\000\000\000\000\001%\000\000\000\000\000\000\003\254\000\153\000\000\000\000\003\246\004\030\000\153\0019\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\0019\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\001%\001%\000\000\000\153\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0019\003\238\000\000\000\000\003\254\000\000\000\000\000\197\004\142\000\000\001-\000\000\000\000\001-\000\000\000\000\000\000\004\022\000\000\000\000\003\246\0019\004\006\0019\000\000\000\153\000\000\000\000\000\000\000\000\0019\0019\003\254\0019\004.\0019\003\230\004\014\000\000\000\000\000\000\001-\000\000\000\000\000\000\001-\000\153\000\000\000\000\004\030\000\000\003\238\000\000\000\153\001-\001-\000\000\001-\001-\000\000\000\000\000\153\000\153\001-\000\000\000\000\000\000\004\022\000\000\029\026\003\246\029\"\004\006\001-\000\000\000\000\000\000\000\000\000\000\000\000\029*\000\000\000\000\000\000\000\000\029J\000\000\000\000\000\000\004&\000\000\000\000\0262\000\000\000\000\000\000\003\254\000\000\000\000\004\030\000\000\001-\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\197\000\000\001-\000\000\000\000\026B\000\000\000\197\000\000\000\000\000\000\026F\000\000\000\000\026N\004\150\004.\000\000\026R\000\000\000\000\000\000\000\000\000\000\026V\000\000\000\000\000\000\000\000\004&\000\000\000\000\001-\000\000\000\000\000\000\003\254\000\000\000\000\000\000\026Z\029R\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-\000\000\000\000\000\000\000\000\000\000\000\000\001-\001-\000\000\001-\001-\001-\000\000\000\000\000\000\026^\000\000\000\000\026b\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\026f\000\000\000\000\000\000\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\017i\002\246\000\000\017i\000\000\000\000\026~\000\000\000\000\026\130\b>\bJ\000\000\000\000\000\000\b^\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\026\134\000\000\017i\017i\000\000\026\138\026\142\b\130\003&\000\000\tn\000\000\b\142\001\238\003.\000\000\000\000\017i\b\150\b\154\000\000\017i\b\158\017i\017i\000\000\000\000\tv\000\000\000\000\nN\000\000\000\000\017i\000\000\000\000\017i\000\000\017i\b\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\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\206\000\000\000\000\000\000\nZ\000\000\b\214\000\000\002\230\000\000\001\138\000\000\000\000\018\022\000\000\b\218\018\026\000\000\000\000\000\000\b\226\003r\000\000\000\000\017i\017i\000\000\017i\000\000\n^\000\000\017i\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\018\134\018r\000\000\000\000\017i\019\206\000\000\000\000\017i\017i\003\026\000\000\003\030\000\000\000\000\017i\000\000\000\000\000\000\017i\017i\018\138\003&\000\000\000\000\000\000\018\142\001\238\003.\000\000\000\000\000\000\018\146\018\150\000\000\026.\018\154\000\000\000\000\000\000\000\000\000\000\000\000\026.\000\000\000\000\000\000\0262\000\000\000\000\000\000\000\000\000\000\b\162\018\158\0262\000\000\000\000\0266\018\162\026:\000\000\000\n\000\000\026>\000\000\0266\000\000\026:\000\000\026B\018\170\026>\000\000\000\000\000\000\026F\000\000\026B\026N\000\000\000\000\000\000\026R\026F\000\000\000\000\026N\000\000\026V\000\000\026R\000\000\000\000\000\000\018\174\000\000\026V\000\000\000\000\027\186\018\182\000\000\000\000\000\000\026Z\000\000\000\000\028\138\000\000\018\186\000\000\000\000\026Z\000\000\018\194\003r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r%\000\000\026^\000\000\000\000\026b\000\000\000\000\r%\000\000\026^\000\000\000\000\026b\000\000\000\000\000\000\000\000\026f\000\000\000\000\000\000\000\000\026j\000\n\026n\026f\026r\026v\000\000\026z\026j\000\n\026n\000\000\026r\026v\026~\026z\000\000\026\130\000\000\026.\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\000\000\000\000\0262\026\134\000\000\000\000\000\000\000\000\026\138\026\142\r%\026\134\000\000\0266\000\000\026:\026\138\026\142\r%\026>\000\000\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\000\000\000\000\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\t\161\000\000\000\000\000\000\000\000\026V\000\000\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\000\000\028\242\000\000\000\000\000\000\000\000\026Z\000\000\t\161\000\000\t\161\000\000\000\000\000\000\t\161\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\t\161\000\000\000\000\000\000\t\161\000\000\r%\000\000\026^\000\000\t\161\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\t\161\029R\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\000\000\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\000\000\000\000\b%\000\000\000\000\000\000\000\000\t\161\000\000\000\000\t\161\026\134\000\000\000\000\b%\000\000\026\138\026\142\r%\000\000\000\000\000\000\000\000\t\161\000\000\b%\000\000\b%\t\161\t\161\t\161\b%\t\161\t\161\000\000\t\161\000\000\b%\000\000\000\000\000\000\000\000\t\161\b%\000\000\t\161\b%\000\000\000\000\000\000\b%\027\158\000\000\000\000\000\000\000\000\b%\000\000\000\000\000\000\t\161\000\000\000\000\0262\000\000\t\161\t\161\030Z\000\000\000\000\000\000\000\000\b%\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\000\000\000\000\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\b%\000\000\026V\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\026Z\027\182\000\000\b%\b%\b%\000\000\b%\b%\000\000\b%\000\000\000\000\0262\000\000\000\000\000\000\b%\000\000\000\000\b%\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\026^\000\000\000\000\026b\b%\026B\000\000\000\000\000\000\b%\b%\026F\000\000\000\000\026N\000\000\026f\000\000\026R\026.\000\000\026j\000\n\026n\026V\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\026Z\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\026^\000\000\026V\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\028n\028\134\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\026^\000\000\000\000\026b\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\026f\000\000\026R\028\238\000\000\026j\000\n\026n\026V\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\026Z\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\026^\000\000\026V\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\026Z\026.\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\026^\000\000\000\000\026b\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\026f\000\000\026R\026.\000\000\026j\000\n\026n\026V\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\030&\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\026\134\026B\000\000\000\000\000\000\026\138\026\142\000\000\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\026^\000\000\026V\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\026Z\000\000\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\000\000\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\026^\000\000\000\000\026b\026\134\000\000\000\000\000\000\000\000\026\138\026\142\000\000\000\000\000\000\000\000\000\000\026f\000\000\017\129\017\129\000\000\026j\030R\026n\000\000\026r\026v\000\000\026z\000\000\000\000\000\000\000\000\017\129\000\000\026~\000\000\017\129\026\130\017\129\017\129\000\249\000\000\000\000\000\249\000\000\000\000\b:\000\000\017\129\000\000\000\000\017\129\026\134\017\129\000\000\000\000\000\000\026\138\026\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\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\017\129\003\238\000\000\000\000\000\000\000\249\000\000\000\249\000\249\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\004\022\000\000\000\000\003\246\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\225\000\225\000\000\017\129\017\129\000\000\017\129\000\000\000\000\000\000\017\129\000\000\004\030\000\000\000\000\003\238\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\221\017\129\000\000\000\221\000\000\017\129\017\129\000\000\000\225\000\000\000\000\003\246\017\129\004\006\000\000\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\000\004&\000\000\000\000\000\249\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\225\003\238\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\000\000\249\000\000\000\000\000\000\000\249\000\249\000\000\000\221\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\249\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\000\000\003\254\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\213\000\225\000\000\000\000\000\000\000\225\000\225\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\213\001\001\000\225\000\225\000\213\000\000\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\213\000\000\000\221\003\246\000\000\000\213\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\003\238\000\221\000\221\000\000\001\001\000\000\001\001\004\142\000\000\000\213\000\000\000\000\000\221\000\221\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\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\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\004\030\000\213\000\000\000\000\000\213\000\000\000\000\000\000\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\003\238\000\213\000\213\000\000\000\245\000\000\000\245\000\245\000\237\000\000\000\000\000\237\000\213\000\213\000\000\004&\004\022\000\000\001\001\003\246\000\000\004\006\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\001\001\000\000\000\000\000\000\001\001\001\001\000\000\000\000\000\000\000\000\000\000\000\000\004\030\003\238\000\000\004\150\004.\000\237\000\000\000\237\000\237\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\000\000\237\000\000\000\000\003\246\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\217\000\217\000\000\000\000\004&\000\000\000\000\000\245\000\000\000\000\000\000\003\254\000\000\004\030\000\000\000\217\000\000\000\000\000\000\000\217\000\229\000\217\000\217\000\229\000\000\000\245\000\000\000\000\000\000\000\245\000\245\000\217\000\000\000\000\003\246\000\000\000\217\000\000\000\000\000\000\000\245\004.\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\237\000\000\000\000\000\000\003\254\003\238\000\000\000\217\000\000\000\229\000\000\000\229\000\229\000\000\000\233\000\000\000\000\000\233\000\237\000\000\000\000\000\229\000\237\000\237\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\237\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\229\003\254\003\238\000\000\000\000\000\000\000\233\004\134\000\233\000\233\000\253\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\233\000\217\000\217\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\229\000\000\000\000\000\229\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\000\253\000\000\000\253\004\142\000\000\000\241\000\000\000\000\000\241\000\229\000\000\000\000\004\022\000\229\000\229\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\233\000\000\000\000\004\030\003\254\003\238\000\000\000\000\000\000\000\241\004\134\000\241\000\241\000\000\000\177\000\000\000\000\000\000\000\233\000\000\000\000\004\022\000\233\000\233\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\233\000\000\003\230\004\014\000\000\000\000\003\230\004\014\000\000\004&\000\000\000\000\000\253\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\003\238\000\000\000\185\000\185\000\000\000\157\000\177\000\177\000\000\000\253\000\000\000\000\004\022\000\253\000\253\003\246\000\177\004\006\000\000\003\246\000\000\004\006\000\000\000\000\000\253\004.\000\000\000\000\000\000\000\000\000\169\000\157\000\157\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\241\000\000\000\000\004\030\003\254\000\157\000\000\004\030\000\000\000\000\000\000\000\157\000\157\000\000\000\000\003\230\004\014\000\000\000\241\000\000\000\000\000\157\000\241\000\241\003\246\000\000\000\157\000\000\000\000\000\000\003\238\000\000\000\000\000\241\000\241\000\000\000\169\000\169\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\169\000\177\000\000\003\246\003\254\004\006\000\000\000\157\003\254\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\177\000\000\000\000\000\185\000\000\000\000\000\000\000\177\000\000\000\000\000\169\000\185\004.\003\230\004\014\000\177\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\003\238\000\000\000\000\000\000\003\254\004\134\000\173\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\157\003\246\000\000\004\006\000\169\000\000\000\000\000\157\000\000\000\000\000\000\003\254\000\181\003\230\004\014\000\157\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\003\238\000\000\004\030\000\000\000\169\000\000\000\193\004\142\000\000\000\000\003\230\004\014\000\169\000\169\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000\000\000\000\181\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\173\000\000\003\246\000\000\004\006\000\000\004\030\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\173\000\173\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\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\004&\000\000\000\000\000\193\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\193\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\181"))
   
   let lhs =
-    (16, "\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-\001-\001-\001,\001,\001,\001,\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001&\001&\001&\001&\001%\001$\001$\001$\001#\001#\001#\001\"\001\"\001\"\001!\001!\001!\001 \001\031\001\030\001\029\001\029\001\028\001\028\001\027\001\027\001\026\001\026\001\025\001\025\001\024\001\023\001\022\001\021\001\020\001\019\001\018\001\017\001\016\001\015\001\014\001\r\001\012\001\011\001\n\001\t\001\t\001\b\001\b\001\007\001\007\001\006\001\006\001\005\001\005\001\005\001\005\001\004\001\004\001\004\001\004\001\003\001\003\001\003\001\003\001\002\001\002\001\002\001\002\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\253\000\252\000\252\000\252\000\252\000\252\000\251\000\251\000\250\000\249\000\248\000\248\000\248\000\248\000\247\000\247\000\247\000\247\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\245\000\244\000\244\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\242\000\242\000\241\000\241\000\241\000\240\000\239\000\238\000\238\000\237\000\237\000\236\000\235\000\235\000\234\000\234\000\233\000\233\000\232\000\232\000\231\000\230\000\229\000\229\000\228\000\228\000\227\000\227\000\226\000\226\000\225\000\225\000\224\000\223\000\223\000\222\000\222\000\222\000\222\000\222\000\222\000\221\000\221\000\221\000\220\000\219\000\218\000\218\000\218\000\218\000\217\000\217\000\216\000\215\000\215\000\215\000\214\000\214\000\214\000\214\000\214\000\213\000\213\000\213\000\213\000\212\000\212\000\212\000\212\000\211\000\211\000\211\000\211\000\210\000\209\000\209\000\208\000\208\000\208\000\207\000\206\000\206\000\206\000\205\000\204\000\204\000\203\000\203\000\203\000\202\000\202\000\202\000\201\000\201\000\201\000\201\000\200\000\200\000\199\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\198\000\197\000\197\000\197\000\197\000\197\000\197\000\196\000\195\000\194\000\194\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\188\000\188\000\188\000\188\000\188\000\188\000\187\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\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\173\000\173\000\172\000\172\000\171\000\171\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\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\154\000\154\000\153\000\153\000\152\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\150\000\150\000\150\000\150\000\149\000\148\000\147\000\146\000\145\000\144\000\143\000\142\000\141\000\140\000\139\000\138\000\137\000\137\000\137\000\136\000\136\000\136\000\135\000\135\000\135\000\135\000\134\000\133\000\132\000\131\000\130\000\129\000\128\000\127\000~\000}\000}\000|\000|\000|\000{\000{\000z\000z\000z\000y\000y\000y\000x\000w\000w\000w\000v\000u\000u\000t\000t\000t\000t\000t\000t\000t\000s\000s\000s\000s\000s\000s\000s\000r\000r\000r\000r\000r\000r\000r\000q\000q\000q\000q\000q\000q\000q\000p\000p\000p\000p\000p\000p\000p\000o\000o\000o\000o\000o\000o\000o\000n\000n\000m\000m\000l\000l\000k\000k\000j\000j\000i\000i\000h\000h\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000a\000a\000`\000`\000_\000_\000_\000_\000_\000^\000^\000]\000]\000]\000]\000\\\000[\000Z\000Z\000Z\000Y\000Y\000Y\000X\000X\000X\000X\000X\000X\000W\000W\000W\000W\000W\000W\000W\000W\000V\000V\000V\000V\000V\000V\000V\000V\000U\000U\000U\000U\000U\000U\000U\000U\000T\000T\000T\000T\000T\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000K\000J\000I\000H\000H\000G\000G\000F\000E\000E\000D\000D\000D\000C\000C\000B\000B\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:\0009\0009\0008\0008\0007\0007\0006\0006\0005\0005\0004\0004\0003\0003\0002\0002\0001\0001\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\031\000\031\000\031\000\031\000\030\000\030\000\030\000\029\000\029\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\025\000\025\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\015\000\014\000\014\000\014\000\014\000\014\000\r")
+    (16, "\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\0012\0012\0012\0011\0011\0011\0011\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001+\001+\001+\001+\001*\001)\001)\001)\001(\001(\001(\001'\001'\001'\001&\001&\001&\001%\001$\001#\001\"\001\"\001!\001!\001 \001 \001\031\001\031\001\030\001\030\001\029\001\028\001\027\001\026\001\025\001\024\001\023\001\022\001\021\001\020\001\019\001\018\001\017\001\016\001\015\001\014\001\014\001\r\001\r\001\012\001\012\001\011\001\011\001\n\001\n\001\n\001\n\001\t\001\t\001\t\001\t\001\b\001\b\001\b\001\b\001\007\001\007\001\007\001\007\001\006\001\006\001\006\001\006\001\005\001\005\001\005\001\005\001\004\001\004\001\004\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\002\001\001\001\000\001\000\001\000\001\000\001\000\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\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\248\000\248\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\246\000\246\000\245\000\245\000\245\000\244\000\243\000\242\000\242\000\241\000\241\000\240\000\239\000\238\000\238\000\237\000\237\000\236\000\236\000\235\000\235\000\234\000\233\000\232\000\232\000\231\000\231\000\230\000\230\000\229\000\229\000\228\000\228\000\227\000\226\000\226\000\225\000\225\000\225\000\225\000\225\000\225\000\224\000\224\000\224\000\223\000\222\000\221\000\221\000\221\000\221\000\220\000\220\000\219\000\218\000\218\000\218\000\217\000\217\000\217\000\217\000\217\000\216\000\216\000\216\000\216\000\215\000\215\000\215\000\215\000\214\000\214\000\214\000\214\000\213\000\212\000\212\000\211\000\211\000\211\000\210\000\209\000\209\000\209\000\208\000\207\000\207\000\206\000\206\000\206\000\205\000\205\000\205\000\204\000\204\000\204\000\204\000\203\000\203\000\202\000\202\000\202\000\202\000\202\000\202\000\201\000\201\000\201\000\200\000\200\000\200\000\200\000\200\000\200\000\199\000\198\000\197\000\197\000\196\000\196\000\195\000\195\000\194\000\194\000\193\000\193\000\192\000\192\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\190\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\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\173\000\173\000\172\000\172\000\171\000\171\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\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\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\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\152\000\152\000\152\000\152\000\151\000\150\000\149\000\148\000\147\000\146\000\145\000\144\000\143\000\142\000\141\000\140\000\139\000\139\000\139\000\138\000\138\000\138\000\137\000\137\000\137\000\137\000\136\000\135\000\134\000\133\000\132\000\131\000\130\000\129\000\128\000\127\000\127\000~\000~\000~\000}\000}\000|\000|\000|\000{\000{\000{\000z\000y\000y\000y\000x\000w\000w\000v\000v\000v\000v\000v\000v\000v\000u\000u\000u\000u\000u\000u\000u\000t\000t\000t\000t\000t\000t\000t\000s\000s\000s\000s\000s\000s\000s\000r\000r\000r\000r\000r\000r\000r\000q\000q\000q\000q\000q\000q\000q\000p\000p\000o\000o\000n\000n\000m\000m\000l\000l\000k\000k\000j\000j\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000h\000h\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000a\000a\000a\000a\000a\000`\000`\000_\000_\000_\000_\000^\000]\000\\\000\\\000\\\000[\000[\000[\000Z\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000X\000X\000X\000X\000X\000X\000X\000X\000W\000W\000W\000W\000W\000W\000W\000W\000V\000V\000V\000V\000V\000V\000V\000V\000U\000U\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000K\000J\000I\000H\000H\000G\000G\000F\000E\000E\000D\000D\000D\000C\000C\000B\000B\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:\0009\0009\0008\0008\0007\0007\0006\0006\0005\0005\0004\0004\0003\0003\0002\0002\0001\0001\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\031\000\031\000\031\000\031\000\030\000\030\000\030\000\029\000\029\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\025\000\025\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\015\000\014\000\014\000\014\000\014\000\014\000\r")
   
   let goto =
-    ((16, "\000\239\000f\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\001]\001\184\000\000\000\245\000w\000\000\000\000\000\000\000D\001p\000\000\000\000\001|\001\146\001\188\000\000\000\000\002\154\000\000\000\000\002\158\000\000\002\242\000\000\000\000\000\000\0036\000\000\003J\000\000\000\000\000\000\004:\000\000\004@\000\000\000\000\004\128\004\194\000\000\000\000\004\210\004\230\004\246\000\000\000\000\004\252\000\000\000\000\005\"\000\000\005\162\000\000\000\000\000\000\0062\000\000\006<\000\000\007&\007(\000\000\000\000\0076\000\000\007\\\007\148\007\164\000\000\000\000\007\168\000\000\007\176\000\000\000\000\007\242\000\000\b0\000\000\000X\000\000\002\176\002\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\n\220\000\000\000u\000\000\000\000\0144\000\000\000\000\015\224\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\234\000\000\000\000\bp\021d\000\000\000\000\021h\000\000\000\000\000\000\000\000\bR\000\000\bZ\018\184\000\000\b`\000\000\000\000\b\138\000\000\000\000\b\156\000\000\b\174\000\000\000\000\000\000\b\222\000\000\000\134\b\228\000\144\000\000\002H\000\000\000\000\000\000\0052\000\000\003\234\000\000\000\000\000\000\000#\000\000\000\000\016\016\000\127\002R\000\000\000\000\005\022\t\156\000\000\006\020\000\000\011v\006\2462*\006\246\n\162\026R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\1842z\000\000\000\000\019\216\020\184\021~\000\000\023\188\002\170\000\000\000\000\004<\024x\000\000\000\000\000\000\014v\000\000)$.\198\bR\000\000\000\000?4\000\000\000r\000\000\021P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\001\016\000\000\002\250\000\000\016\030\000\000\016\168\000\000\026\162\000\000#\150\000\000.\202\000\000/\024\000\0004 \000\0004B\000\000\011\232\000\000@\030\000\000\000\000\000\000\000\000\000\0004\176\000\0006x\000\000Cp\000\000F\208\000\000G^\000\000Gb\000\000Gv\000\000G\142\000\000H\028\000\000Ht\000\000H\128\000\000H\152\000\000I\014\000\000I0\000\000I>\000\000IV\000\000\024\198\000\000\000\000\028L\000\000\000\000\000\000\000\000\015\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Z@Z\000\000\002\002\000\000\000\000\002\018\003\142\000\000\000\254\t\024\000\000\000\000\t\"\tp\000\000\000\000\tz\t\142\t\166\000\000\000\000\t\186\000\000\000\000\t\202\000\000\t\210\000\000\000\000\000\000\t\214\000\000\t\232\000\000\t\234\000\000\t\248\000\000\000\000\t\254\n\004\000\000\000\000\n\n\n\012\n\"\000\000\000\000\n0\000\000\000\000\n4\000\000\n8\000\000\000\000\000\000\n<\000\000\nB\000\000\nD\nN\000\000\000\000\n^\000\000\np\nr\nz\000\000\000\000\n\130\000\000\n\138\000\000\000\000\n\140\000\000\n\142\000\000\003V!\252\000\000\n\148\000\000\n\156$\240\000\000\n\158\000\000\000\000\n\166\000\000\n\176\000\000\n\178\000\000\000\000\000\000\n\184\000\000\n\188\tf\000\000\000\000\000\000\n\198\000\000\000E\000\000\000\000\000z!\138\000\000\016\132\000\000\020\018\000\000\000\000\005\"\000\026\000\000\000\000\000\000\000\000\0062\001\198\000\000\t\224\000\000\000\000\000\000\018t\000\000\021^\000\000\012\218\000\000\000\000\000\000\000\000\000\000\000\000\rH\000\000\000\000\001\144\000\000\001\178\000\000\000\000\000\000\012\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\254\bD\r\030\000\000\n\214\000\000\n\224\r(\000\000\n\230\000\000\000\000\000\000\022L\000\000\000\000\000\000\000\000\002\154\000\000\000\0003X\000\000\000\000\000\000\005\158\r\242\000\000\025\0003\168\000\000\000\000\000\000\000\000\018\160\030p\000\000\000\0003\248\000\000\000\000\000\000\007\1704\158@\210\000\000@\234\000\000\000\000\000\0004\224\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\236\000\000\000\000\000\000\000\000'H5\166\021\168\000\000\029\018\000\000\000\000\031P\000\000\007\188\000\000\000\000\012\016\000\000\000\000\000\000\021\180\000\000)\236/\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\142\000\000\000\000\000\0000\2521T$J\000\000\000\000$\146\000\000\007\192\000\000\r\214\000\000\000\000\000\000\022$\000\000*\004\000\000\030\138\000\000 \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\000If\000\0008`\000\000A\002\000\000Ir\000\000J<\000\000J^\000\000J\134\000\000J\212\000\000K\028\000\000K4\000\000K@\000\000KP\000\000K\162\000\000L\014\000\000L,\000\000L<\000\000\000\0001\194\000\000Aj\000\000\000\000\000\000\023@\000\000\000\000\000\000\000\000\000\000\000\0001\218\000\000\000\000\000\000\000\000A\178\000\000\000\000\000\000\024\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\200\000\000<\004\000\000\001%\000\000\000\000\000\000LX\000\000L\\\000\000Lv\000\000M8\000\000M\128\000\000M\148\000\000M\164\000\000M\202\000\000M\246\000\000N<\000\000Nb\000\000N\134\000\000N\150\000\000N\204\000\000\000\000\000\000\000\000\000\000\023\166\000\000\000\000\000J%^\000\000\000\0008@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\000\000\000A\226\000\000\000\000\000\000\007\200\001@\000\000\000\000\000\000\000\000\n&\000\0005\230\000\000\000\000\000\000\000\000\000\0006\016\000\000\000\000\000\0006R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\252\000\000\n\254\016\180\000\000\011\006\000\000\000\000\004\000\004\136\000\000\004\018\000\000\000\000\000\000\000\000\019\192\000\000\011\b\000\000\000\000\000-\004N\000\000\005N\000\000\000\000\000\000\001p\000\000\014`\002\146\011\n\000\000\000\000\011\022\011\028\000\000\000\000\011\"\0114\0116\000\000\000\000\011:\000\000\000\000\011>\000\000\011T\000\000\000\000\000\000\011V\000\000\011X\000\000\011\\\000\000\011^\000\000\000\000\011`\011b\000\000\000\000\011d\011h\011l\000\000\000\000\011n\000\000\000\000\011t\000\000\011v\000\000\000\000\000\000\011\138\000\000\011\146\000\000\011\148\011\152\000\000\000\000\011\154\000\000\011\164\011\168\011\172\000\000\000\000\011\174\000\000\011\184\000\000\000\000\011\194\000\000\011\198\000\000\007\228)\014\000\000\011\202\000\000\011\210)Z\000\000\011\216\000\000\000\000\011\218\000\000\011\222\000\000\011\236\000\000\000\000\000\000\011\238\000\000\005\162\000\000\000\000\000\000\005h\001\218\000\000\000\000\006p\000\000\000\000\011\240\019\\\000\000\012\b\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\t\b\020^\000\000\012\n\000\000\012(\021\200\000\000\012*\000\000\000\000\rX\0124\000\000\000\000\012>\012D\000\000\000\000\012N\012P\012j\000\000\000\000\012l\000\000\000\000\012n\000\000\012p\000\000\000\000\000\000\012v\000\000\012x\000\000\012|\000\000\012\132\000\000\000\000\012\140\012\146\000\000\000\000\012\152\012\160\012\162\000\000\000\000\012\166\000\000\000\000\012\170\000\000\012\174\000\000\000\000\000\000\012\180\000\000\012\188\000\000\012\190\012\204\000\000\000\000\012\208\000\000\012\212\012\218\012\226\000\000\000\000\012\230\000\000\012\238\000\000\000\000\012\246\000\000\012\250\000\000\b\")\136\000\000\r\012\000\000\r\014+\"\000\000\r$\000\000\000\000\r*\000\000\r0\000\000\r2\000\000\000\000\000\000\r4\000\000\rF\023b\000\000\rJ\000\000\000\000\n\238\029\014\000\000\rN\000\000\rP\0300\000\000\rT\000\000\000\000\000\000\000\000\000\000\000\000\000\000Bb\000\000*\182\000\000\000\000\000\000B\180\000\000\000\000\006\180\000\000\000\000\000\000\005\254\007\254\000\000\000\000(\016\000\000\000\000\002\178\000\000\000\000\000\000\000\000\004\224\000\000\022N\000\000\000\000\017$\000\000\000\000\000\0008\222\000\000\000\000\000\000\000\000\000\000\019P\000\000\000\000\000\000\000\127\000\0009p\000\000\000\000\000\000\000\000\005\024\r\240\000\0009\184\000\000\000\000\000\000\000\000\014H\000\0009\210\000\000\000\000\000\000\000\000\001\029\000\000\007\230\000\000\000\000'\1386\154\000\000\000\000\000\000CB\000\000\000\000\000\000\001\n\000\000C\182\000\000\000\000\000\000C\186\000\000\000\000\003\018\000\000\029j\000\0276\174\000\000\000\000\000\000\b\192\014\234\000\000\000\000\000\000\000\000\000\000\000\000)\214\000\000\000\000)\238\000\000\000\000+\224\000\000\bj\000\000\020\024\000\000\000\000\000\000\025\222\000\000*\244\000\000\000\000C\226\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\000\000!`\000\000#\204\000\000\000\000\000\000\006\152\000\000\000\000\000\000\000\000\000\000\000\000N\232\000\000:\154\000\000DD\000\000O\148\000\000O\218\000\000O\230\000\000P,\000\000P:\000\000P\196\000\000P\232\000\000P\246\000\000Q.\000\000Q2\000\000QR\000\000Q^\000\000R\012\000\0007\210\000\000\000\000\000\000\0014\000\000\005\224\000\000\015\148\002\022\b\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\160\000\000+\208(\182\026\132\000\000\000\000\000\000:\238\000\000;P\000\000;\162\000\000,\020,.\005\156\003\214\000\000\000L\005\004\000\000\000\000\000\000\007\\\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\000D\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\238\000\000,r\000\000\000\000\000\000\016D\000\000\000\000\007\150\000\000\000\000\000\000\030\028\002t\000\000\030\226\000\000\000\000\000\000\000\000\003:\000\000\000\000\017B\000\000\031\168\000\000\000\000-F\000\000\000\000\000\000\t\162\000\000\000\000\023\214\000\000\000\000\023\242\000\000\000\000\000\000;\234\000\000\000\000\000\000\031\140\000\000\000\000\000\000\000\000<0\000\000\000\000\000\000\000\000\tB\017d\000\000<2\000\000\000\000\000\000\000\000\000\000\000\000\017\212\000\000\000\000\003\220\000\000\018\210\000\000\t\162\000\000\000\000\006\2440\164\000\000\006\254\000\000\000\000\000\000\000\000\006\152\000\000-\248\000\000 Z\003\204! \000\000\0046\000\000\019\152\000\000\020J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007J!\230\000N\"\152\000\000\000\000\000\000\001\154\000\000\021\016\000\000\007N\000\000\000\000\014\250\003F#^\000\000\005$\000\000\021\214$$\000\000\000\000\022\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007v\tt\000\000\007\140\000\000\000\000\000\000\000\000\006\156\000\000\023N\000\000\000\000\000\000'\164E\128\000\000\000\000\000\000'6\000\000\000\000\000\000\000\000\000\000\011\192\024:\000\000\000\000=.\000\000\000\000\015<\000\000\025\166\000\000\000\000\"\004\000\000\000\000\000\000=B\000\000\000\000\000\000\000\000=j\000\000\000\000\t\234\025\190\000\000\000\000=\130\000\000\000\000\007\156(h\000\000\026\014\000\000\000\000=\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\170\000\000\000\000\000\000\014V\000\000\000\000\028z\000\000\000\000'\134\000\000\000\000\000\000>@\000\000\000\000\000\000\000\000>T\000\000\000\000\n\152\028\248\000\000\000\000? \000\000\000\000\007\188\000\000\000\000\000\000\000\000\014V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\158\000\000\024\020\000\000\000\000\000\000E\148\000\000\nX\000\000\000\000\000\000\000B\000\000\016l\000\000\000\000\002\030\024\218\000\000\025\160\000\000\000\000\000\000\004\164\000\000E\152\004\248E\172\000\000F~\000\000\000\000\000\000\005t\000\000F\150\006(\000\000\000\000.\250\006</\132\000\000/\200\000\000\000\000\000\000\b\138\000\000F\170\b\138\000\000\000\000\017\018\b\138\030\252\000\000\031f\000\000\000\000\000\000\b\252\000\000F\174\t\014\000\000\000\000\000\000\005p\000\000\001\004\000\000\000\000\000\000\000\000\002\150\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0118\000\000\000\000\004\136\000\000\014*\000\000\000\000\000\000\014.\000\000\000\000\000\000\000\000\000\000\004\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014<\000\000\000\000\014\024\000\000\004\246\000\000\000\000\b\028\000\000\004\164\r\182\005\002\000\000\000\000\b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b\000\246\000\000\000\000\003\222\000\000\000\000\000\000\0050\000\000\000\000\005x\005\228\000\000\000\000\000\000\000\000\011\228\012\188\000{\000\000\000\000\000\000\017\176\000\000\000\000\000\000\000\000\000\000\000\000\005P\000\000\000\000\0038\000\000\000\000\r\128\000\000\022Z\000\000\000\000\000\000\n\n\000\000\000\000\000\206\000\000\006r\000\000\000\000\000\000\000\000\000\131\025\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015.\026H\000\000\000\000\000\000\000\000\027\014\027(\003\228\000\000\027z\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\014Z\000\000\000\000\000\000\022\230\000\000\007\016\000\000\000\000\000\000\017\156\000\000\000\000\027\176\029\026\t\252\000\000\029f\000\000\000\000\000\000\000\000\000\000\000\000\002\206\r\138\000\000\r\142\000\000\029\184\015D\000\000\030\146\000\000\000\000\000\000\000\000\r\146\000\000\014\028\000\000\000\000\000\000\017(\000\000\003\030\r\220\007\128\000\000\000\000\000\000\000\198\001\162\000\000\000\000\000\000\000\000\000\000\003\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\023\152\000\000\0003\014z\001\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\bb\000\000\000\000\020d\031\246\000\000\000\000\000\000\000\000 \"\000\000\000\000\nT\000\000\005\012\011\238\000\000\000\000\000\000\016z\000\000\000\000\000\000\000\000\000\000\003\128\021,\000\000\000\000\022 \000\000\000\000\000\000\000\000\016\220\000\000\000\000\006\156\000\000\000\000\000\000\001\222\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\006j\000\000\000\000\000\000\000\000\000\000\000\014\006\152\012\176\017\204\000\000\0004\b\198\t\n\t&\000\000\000\000\000\000\000\000\000\000\000\000\007\246\026f\000\000$\234\b\212\000\000\000\000\tX\000\000\027,\000\00082\000\000\000\000\b\n\027\222\000\000%\156\000\000\bD&b\000\000\000\000\000\000\000\021\024\248\000\000\000\000\000\000\000\000\n\148\000\000\004\018\tR\000\000\000\000\011\144\r\136\000\000\018V\000\000\000\000\018t\000\000\021^\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\002\000\000\000\000\000\000\n>\000\000\028\164\000\000/\254\0142\000\000\000\000\000\000\000\000\000\000\0007\000\000\000\000\000\000\000\000\000\000?\212\000\000\000\165\000\000\000\000\000\000\000\000\000\000\000\172\000\000\011\148\001\b\012\156\000\000\002\180\r\176\000\000\001\180\000\000\0030\000\000\004\184\000\000\0054\000\000/\254\000\000\000\000\000\000\000\000\000\000\005\210\000\000\006\252\000\000\007<\000\000/\254\014\166\000\000\003$\000\000\014\144\001\186\000\000\rH\000\000\rL\000\000\000\000\000\000\000\000\000\000\000\000\rR\000\000\rV\000\000\r\\\000\000\000\000\000\000\000\000\000\000\r\130\000\000\000\000\000\000\000\000\000\000\014\210\r\140\000\000\000\000\r\196\000\000\000\000\r\154\006\004\015$\000\000\015*\000\000\000\000\004\196\t8\000\000\r\234\000\000\000\000\014$\000\000\000\000\000\000\000\000\000\000\000\000\015\022\r\208\000\000\000\000\000\000\014\016\r\234\b\162\006\240\014\022\014l\000\000\000\000\014\030\b\212\t\136\014R\014\142\000\000\000\000\t\200\015x\000\000\015z\000\000\015\166\000\000\000\000\015\134\000\000\000\000\015\144\000\000\000\000\000\000\000\000\015\146\000\000\015\188\000\000\000\000\000\000\015\192\000\000\000\000\000\000\015\196\000\000\000\000\000\000"), (16, "\0027\000\174\001\175\001\181\004\171\001\180\004\190\b\017\007\031\007l\b\018\007\003\006\169\006\170\006r\006\224\006\169\006\170\000\174\000\181\0027\000\007\000\174\003\178\004\171\000\174\004\190\004E\005\140\005t\007\182\000\018\007 \007\216\002\178\000\183\007#\006\169\006\170\007\217\0068\007m\000\174\007n\001\182\003\182\000\005\007\218\000\174\005E\0027\000h\000\183\000\017\0028\000p\004s\000\129\0029\004F\000\r\001\182\000\025\b\t\b\n\005F\007\187\004\173\001\182\003\181\000\129\004\174\007o\007\133\000\231\000p\004s\b\022\001\182\000\237\005\160\000\016\000\017\007p\003\185\005F\005.\004\173\006\171\000\129\003\003\004\174\006\171\000\231\000r\002\177\000\174\001\175\000\232\0027\001\184\006\225\000\174\004\171\000\004\004\190\005.\000\174\001\175\001\176\0031\001\180\007S\006\171\000q\002\170\000i\001\199\b\023\002:\003\028\000\174\000\130\002;\001\227\000\024\007\218\b\024\005E\000\005\000\183\005\187\b\014\004\195\007\172\000\130\001D\0050\001\202\001\182\000\225\000\183\007\220\006:\000\233\007\164\007\165\004\241\004\242\000\129\001\182\007\141\006\249\000\231\000\130\004s\003:\0050\000\232\000\225\000\129\003\004\001\234\000\233\005F\007\221\004\173\007\169\004\241\004\242\004\174\003<\0052\b\026\b+\006\205\006\247\007U\000\239\006\250\006\169\006\170\004\187\000\004\000\004\005.\0057\002\172\005\021\007\172\000\240\005G\0052\004\188\005\189\005\154\001\246\000\239\001\183\006\206\006\169\006\170\004\187\007\151\007\183\001\182\0057\005\136\000\005\000\005\000\240\005G\007\222\004\188\000\130\006;\001D\002\174\000\030\000\225\001\186\007\223\007S\000\233\007\172\000\130\b)\007\253\001\233\007%\001\220\0059\002\167\005u\002\219\005\148\0050\001\186\005O\007\191\000\240\005\171\b,\002\168\007\219\001\233\005\160\000\149\005\162\005l\004\199\0059\004k\005J\007\255\000\174\006\171\000\239\005O\b\026\000\240\b\001\000\174\000\241\007T\001\203\003\183\001\204\004\200\005l\004\199\0052\000\174\004\201\005\025\001O\006\171\004\202\002\177\000\240\0027\004\187\000\241\004\203\004\171\0057\004\190\007U\004\200\000\240\005G\b-\004\188\004\201\000\242\002\222\0060\004\202\005\028\bN\007\223\007[\000\174\004\203\001\183\001I\b/\004E\005\140\005t\000\129\003\196\b \000\242\000\231\001\186\001\249\004\244\006:\000\235\002\179\001L\000\243\001\233\003\006\000\b\001\186\000\174\003(\001O\0059\001\199\005J\b1\001\233\002\180\004s\005O\001\222\000\240\b3\000\244\000\241\005B\001K\005F\0018\004\173\005l\004\199\000\131\004\174\001\202\003\175\000\129\005C\000\246\000h\000h\0027\000\248\000\183\003=\004\171\003\185\004\190\005.\004\200\000\029\000\132\001\182\000\249\004\201\000\242\000&\000\130\004\202\003<\006\150\000h\000\225\000\174\004\203\001\219\000\233\000#\007\218\b\029\005t\001I\007\159\007\160\003\163\006/\000\129\003\004\006\209\003\026\000\231\001\251\001\221\004M\006\151\000\232\006v\007i\000\"\006\154\006\169\006\170\007F\007V\005\155\004\195\005\165\004s\001D\0050\000\239\000\130\000\248\0027\000i\000i\005F\004\171\004\173\004\190\001J\007b\004\174\000\251\003.\007\\\007G\007J\006\169\006\170\001\253\b(\000\129\001D\005I\000\174\000i\005.\006D\000\174\007\218\b\029\005t\006*\0052\007c\005C\007f\006\169\006\170\000\145\000\130\005\173\006F\004\187\bQ\000\225\bs\0057\001\251\000\233\006\237\000\240\005G\007\133\004\188\0035\005\157\007`\004s\007S\001\203\bt\001\204\001O\003\185\006\171\007Y\005F\005\136\004\173\001O\000\174\003\164\004\174\001\220\000l\000l\0050\007]\007b\001O\000\240\b\"\000\239\000\241\000h\000\130\001\252\005.\007^\007_\001\220\0059\006\171\005u\000j\005\148\000l\000%\005O\000(\007X\005\171\007c\005z\007f\006\169\006\170\005\142\001\021\005l\004\199\0052\006\171\006\177\000\242\005C\000\174\001\175\001\176\003\031\001\180\004\187\005\183\007U\000\220\0057\0030\006\208\004\200\000\240\005G\b#\004\188\004\201\001\233\000\129\000\174\004\202\0050\000\231\007\223\000*\001\018\004\203\000\232\007\143\0058\000\134\000\146\000i\000\183\006\206\006\169\006\170\006\224\006\169\006\170\007a\000\137\001\182\005\142\000\244\000y\000\184\000\240\001\019\000\174\000\241\003\178\001\020\0059\003\196\005u\0052\b%\000.\000\246\005O\004N\006\172\b'\006\171\007\146\004\187\000m\0000\005\029\0057\005l\004\199\003\180\000\240\005G\b#\004\188\000\174\003*\0027\000\242\b|\000\130\004\171\007\223\004\190\006\165\000\225\007\232\004\200\0058\000\233\001\157\007s\004\201\007\245\003\181\006-\004\202\000h\003+\000\174\006\166\005\021\004\203\001\182\007\218\b\029\005t\003+\006\171\000\183\007q\006\171\0059\0027\005u\000h\b%\0028\001\182\005O\007\019\0029\b'\000\239\000\129\000\248\006\235\007V\000\222\003\025\005l\004\199\006+\004s\001O\006\168\000\253\003-\000h\0027\004G\006\183\005F\004\171\004\173\004\190\003,\001\234\004\174\004\200\003\"\006\166\000\174\006-\004\201\006\190\005\150\b$\004\202\005\173\006\197\000\174\000i\005.\004\203\006\184\007\218\b\029\005t\001N\003\196\006\187\006\169\006\170\000\174\000\174\006\205\001O\002\170\007\149\000i\004l\002:\006\148\006\149\0004\002;\005\022\0006\000\130\001\182\000h\000\129\001\183\000\225\004s\002T\006\234\000\226\002U\006\206\006\169\006\170\000i\005F\000\240\004\173\007\246\000\241\005\145\004\174\006\198\006\205\002\228\0050\001\186\000\174\005\020\0027\b&\000;\001\199\004\171\001\233\004\190\005.\004\241\004\242\001\209\006G\be\007\247\000\239\007\235\000l\007\236\006\206\006\169\006\170\000\242\000\174\005\176\001\202\001O\006F\007\218\b\029\005t\006\171\0052\002\172\000\129\005\021\000:\006\191\002T\000i\000\130\002[\004\187\002V\000C\000\174\0057\002W\0037\006\205\000\240\005G\b#\004\188\000@\006N\001O\004s\000l\0050\006\171\007\223\000?\002\174\003\165\000B\005F\0058\004\173\002\242\006P\000\174\004\174\006\206\006\169\006\170\005\030\001\186\002\167\004F\002\212\b.\004_\002a\000E\001\233\000\240\005.\001\182\002\168\006\175\0059\bl\005u\0052\b%\006\171\000\240\005O\000\130\000\241\b'\002V\003\167\004\187\004d\002W\003\159\0057\005l\004\199\005\021\000\240\005G\b#\004\188\002\215\006Q\005\198\003\161\004e\005\022\000\174\007\223\002\177\001\210\006\176\007\182\004\200\0058\005C\000\242\006P\004\201\007\004\007\005\000\174\004\202\0050\002\250\001\223\004E\002a\004\203\004i\006\199\001\245\000\129\000G\001\228\006\171\000\231\001\203\0059\001\204\005u\000\235\b%\004\243\006\194\005O\001\202\001O\b'\007\006\000\240\002\179\007\155\002b\000\174\004s\005l\004\199\0052\bb\007\007\0039\006\235\b\026\001\182\006\212\002\180\0027\004\187\001O\001O\004\171\0057\004\190\005\031\004\200\000\240\005G\b#\004\188\004\201\003\165\005\022\000h\004\202\007\174\006\238\007\223\007\175\000\174\004\203\005 \006T\0058\007\218\b\029\005t\000\130\007\004\007\005\006\\\006\218\000\225\003\164\001I\000K\000\233\006P\007\179\000\240\000M\001O\002b\004\241\004\242\006^\b0\0059\006\177\005u\003\166\b%\000\129\004s\005O\003\016\0028\b'\007$\002\239\0029\000\129\005F\000\129\004\173\005l\004\199\000\129\004\174\007\007\000\239\002T\006\190\004\198\002[\005\131\002\253\b2\000i\004Q\005\131\000\129\0027\005.\004\200\006\216\004\171\004k\004\190\004\201\007\157\004\241\004\242\004\202\000h\007\172\003\007\004z\001D\004\203\002h\004\241\004\242\001\203\000\174\001\204\bx\001\226\bm\004E\005\140\005t\000\129\001O\005\133\005\024\007\193\000\130\002i\005\132\005G\002:\005\168\002j\005\168\002;\000\130\002k\000\130\000h\004\241\004\242\000\130\002l\0050\002V\000\129\004G\004s\002W\000\231\001\239\006\186\005\192\006\193\000\232\000\130\005F\000\129\004\173\005\021\000h\000\240\004\174\005\192\000\241\007\184\000Q\000P\000i\006!\005\170\006<\005\169\001O\000S\006\184\005O\005.\0052\005T\006\191\006\187\006\169\006\170\002a\006!\000\130\005l\004\187\001F\007b\005\194\0057\000]\bl\000\242\000\240\005G\b#\004\188\000\129\005=\005\193\000i\004\171\0027\004\172\007\223\006#\004\171\000\130\004\190\001L\0058\007c\000\225\007f\006\169\006\170\000\233\001O\000X\000\130\001\018\006\"\000i\007\199\000\174\0050\000W\007\187\000Z\004E\005\140\005t\000\\\000h\0059\005C\005u\000l\b%\000\244\002\167\005O\005\022\001\019\b'\003\190\007\195\001\020\000\240\006\191\000\239\002\168\005l\004\199\000\246\006\171\007\209\0026\004s\002S\0052\007\187\000\130\000\240\004\173\000_\002b\005F\004\174\004\173\004\187\004\200\000l\004\174\0057\007\187\004\201\003\141\000\240\005G\004\202\004\188\0063\005\154\001\234\007\214\004\203\0027\005.\007\202\006\171\004\171\000\174\004\190\000l\0058\000a\bd\000i\007M\003\005\005C\000\174\001\175\001\176\001\177\001\180\000\129\004\018\000\174\000h\000\222\003\021\000\148\004E\005\140\005t\000\154\005m\0059\000\153\005u\000\005\005\148\002h\000\184\005O\001\182\002\233\005T\bw\006_\000\240\006b\006j\000\241\000\183\005l\004\199\0050\004H\000\156\002i\004s\004\170\001\182\006^\002j\006P\006l\000\159\002k\005F\004G\004\173\b~\004\200\002l\004\174\000\161\001\245\004\201\007\232\000\174\004O\004\202\000\242\000\141\001\234\007\244\000l\004\203\000\130\005.\0052\000i\000\129\000\225\b\156\004\187\000\231\000\226\000y\000\165\004\187\000\232\0034\000\240\0057\000h\004\188\006m\000\240\005G\b\157\004\188\005\152\005\154\006\246\006p\007\190\0027\005\239\000\144\007\254\004\171\006l\004\190\007v\0058\007\133\001\182\001Q\001A\006P\000\239\005C\001V\006\224\006\169\006\170\003\185\006\247\000\174\0050\006\250\006\169\006\170\004E\005\140\005t\000h\001\199\0059\007\189\005u\007b\005\148\000\129\001\201\005O\000\130\002T\005T\b\127\002[\000\225\000l\007\188\bm\000\233\005l\004\199\001\202\000i\001\234\001U\004s\001\245\0052\007c\001^\007f\006\169\006\170\004\239\005F\000h\004\173\004\187\004\200\001[\004\174\0057\bm\004\201\000h\000\240\005G\004\202\004\188\005\191\005\154\001Z\000\239\004\203\0027\005.\004-\006\027\004\171\005\027\004\190\001]\0058\006\171\000i\000\240\001\182\001\183\000\241\001`\006\171\000\130\007-\001b\002V\001f\000\174\007\235\002W\007\236\005a\004E\005\140\005t\001h\001j\0059\001O\005u\001\186\005\148\bl\001l\005O\005\021\001q\005T\001\233\001p\000\242\000i\001y\001v\004d\005l\004\199\0050\006\171\007\136\000i\004s\002\250\000\129\001u\002a\006\153\000\222\003\015\005f\005F\001x\004\173\001{\004\200\001}\004\174\001\129\0027\004\201\001\131\001\135\004\171\004\202\004\190\000\240\001\134\000l\000\241\004\203\006\151\005.\0052\005j\001\137\006\154\006\169\006\170\000\174\001\203\000\174\001\204\004\187\001\147\001\142\007\218\0057\005E\001\141\001O\000\240\005G\001\144\004\188\0067\005\154\001\146\001\149\001\151\000\242\000\129\001\156\000\174\000l\000\231\001\162\001\161\0058\000\130\000\235\001\164\005\022\000l\000\225\004s\001\166\001\168\000\226\007\b\001\172\000\129\001\250\0050\005F\0028\004\173\001\179\000\240\0029\004\174\002b\0059\007\225\005u\001\238\005\148\005\215\006\205\005O\001\244\b*\005T\001\243\002\251\005.\001\182\003\011\003\196\007\240\005l\004\199\000\239\006\171\003!\003'\007\252\007\139\0052\003&\0033\003A\006\206\006\169\006\170\002\253\000\130\003F\004\187\004\200\003E\000\225\0057\003N\004\201\000\233\000\240\005G\004\202\004\188\007\250\005\154\003K\003J\004\203\003M\000\130\003P\001\015\002h\002:\0027\000o\0058\002;\004\171\0050\004\190\003R\003V\003X\001\245\003Z\003\\\003a\003`\003i\002i\003f\000\239\003e\003h\002j\000\174\003k\003m\002k\0059\007\218\005u\005E\005\148\002l\000\174\005O\003q\000\174\005T\007\182\003s\003w\0052\003v\003y\000\240\005l\004\199\000\241\003\131\006\171\003~\004\187\003}\003\128\000\174\0057\006\205\004s\003\130\000\240\005G\b\028\004\188\003\133\004\200\003\135\005F\003\140\004\173\004\201\007\223\003\146\004\174\004\202\003\145\003\148\b\031\003\150\000\242\004\203\006\206\006\169\006\170\b\027\003\152\003\156\003\173\005.\000\174\001\175\001\176\001\236\001\180\000\174\001\175\001\176\001\241\001\180\003\172\003\189\0059\000\240\005J\b!\000\241\001\199\007\235\005O\007\236\000\174\b'\007\243\001\225\002\167\003\195\003\194\001O\004(\005l\004\199\003\198\000\240\000\183\001\199\002\168\003\203\001\202\000\183\003\202\001\021\001\209\001\182\005\221\003\211\003\208\000\242\001\182\004\200\0050\0027\005\238\000\174\004\201\004\171\001\202\004\190\004\202\003\207\003\210\003\213\003\215\0027\004\203\003\219\003\221\0028\003\223\006\171\000\129\0029\003\225\000\174\002T\001\018\003\230\002U\007\218\003\229\005E\006\231\003\238\000h\0027\0052\003\235\003\234\0028\003\237\001\199\003\240\0029\003\242\000\244\004\187\003\246\001\209\001\019\0057\003\248\003\252\001\020\000\240\005G\b\028\004\188\004s\003\251\000\246\003\254\001\202\004\b\002\169\007\223\004\003\005F\000h\004\173\004\002\b\031\004\005\004\174\007\232\007\192\004\007\004G\000h\002\170\004\n\007\239\004\012\002:\b\030\000h\000\130\002;\005.\002V\0027\004\017\004\023\002W\004\171\0059\004\190\005J\b!\000i\002\170\000h\005O\004\022\002:\b'\004\025\001\210\002;\004\027\004\029\004!\000\174\005l\004\199\007\184\001\203\004E\001\204\005E\004'\004G\004&\001O\004,\0042\001O\0041\006\158\002a\006\162\001\211\004\200\000i\001\203\002\171\001\204\004\201\006\203\0050\006\229\004\202\006\182\000i\001O\006\196\004s\004\203\001\183\006\240\000i\002\172\007\030\001\183\0077\005F\0079\004\173\007C\000\129\007E\004\174\001\210\004\171\007O\004\190\000i\000h\007k\000\133\001\186\000l\002\172\b\007\0052\001\186\005.\b5\001\233\b9\bM\002\174\bK\001\233\004\187\bE\001\216\bG\0057\001\203\bI\001\204\000\240\005G\b\028\004\188\002\167\006?\002\209\001O\000h\005\186\002\174\007\223\000\240\000l\001\251\002\168\bO\b\031\004G\000\240\bU\bV\002b\000l\b[\002\167\002\237\002\212\b\\\007\235\000l\007\236\000\130\000\240\004\173\0050\002\168\006\246\004\174\001O\000i\0059\ba\005J\b!\b`\000l\bh\005O\bj\002\177\b'\0027\001\253\bp\bq\004\171\002\223\004\190\005l\004\199\006\247\bu\002\215\006\250\006\169\006\170\000\184\bv\by\0052\002\177\000h\000i\000\174\006\224\006\169\006\170\004\200\004E\004\187\005E\004m\004\201\0057\bz\000\134\004\202\000\240\005G\000h\004\188\002\179\004\203\b}\005a\001\251\000\137\002\151\b\128\004\195\000y\b\129\b\146\b\135\005\175\004q\002\180\004s\b\144\b\140\000\184\000l\002\179\000h\b\143\b\152\005F\004d\004\173\b\150\000\129\b\154\004\174\b\159\000\231\004t\000\000\002\180\0059\000\232\005J\005\177\006\021\000\228\001\253\005O\000i\005.\005T\0027\006\171\000\000\000\000\004\171\000l\004\190\005l\004\199\004\187\004x\000\000\006\171\000\000\005>\000i\000\000\000\240\000\000\005\184\004\188\007<\000\174\005\186\000\000\000\000\004\200\004E\005@\005E\000\000\004\201\000h\000\000\004\197\004\202\000\000\005a\000\000\000i\000\000\004\203\000\174\000\000\000\000\000\000\000\130\004E\000\000\0050\000\129\000\225\000\000\000\000\000\231\000\233\004s\000\000\000\129\000\232\004d\000\000\000\222\002\249\007b\005F\000\000\004\173\000\000\000l\004_\004\174\000\000\000\000\000\000\005f\004s\004\199\000\174\001\175\001\176\003$\001\180\000h\0052\001\182\005.\000l\007c\000\239\007f\006\169\006\170\004d\004\187\004\200\000\000\000i\0057\005j\004\201\000\000\000\240\005G\004\202\004\188\000\000\000\000\005\233\000\000\004\203\000l\000\183\000\000\007F\000\130\000\000\000\000\007\014\005\175\000\225\001\182\000\000\000\130\000\233\000\174\000\000\0027\000\225\000\000\004E\004\171\000\226\004\190\000\174\000\000\000\000\0050\007G\007J\006\169\006\170\005L\0059\000h\005J\005\177\000\000\000i\000\174\005O\000\000\007I\005T\004E\005M\005t\001?\000\239\004s\000w\005l\004\199\000\000\000\000\000\000\000\239\006\171\001\182\000l\000\000\000\240\0052\000\000\000\241\000y\007G\007J\006\169\006\170\004\200\000\000\004\187\004s\000\136\004\201\0057\004G\006=\004\202\000\240\005G\005F\004\188\004\173\004\203\000\000\000\000\004\174\000\184\0027\000\000\000\000\001\199\004\171\000\242\004\190\005y\006\246\000i\001\209\005G\000\000\005.\003\029\005w\006\171\000\000\000\174\000\000\000l\006\205\000\174\007\182\001\202\000\000\000\000\004E\005M\005t\000\000\0059\006\247\005J\005{\006\250\006\169\006\170\005O\000\000\000\240\005}\000\000\000\241\000\000\006\206\006\169\006\170\000\240\005l\004\199\000\241\000\248\006<\006\171\000\000\004s\000\184\005O\000\000\000\000\005T\000\000\000\255\0050\005F\000\000\004\173\004\200\005l\000\000\004\174\001\231\004\201\000\242\001\183\000\000\004\202\000\000\000\000\000h\000l\000\242\004\203\000\000\007\137\005.\000\174\000\000\000\000\000\000\000\000\000\000\000\134\005G\000\000\000\000\001\186\000\000\0052\000\000\000\000\0027\000\000\000\137\001\233\0028\000\000\000y\004\187\0029\000\000\006\171\0057\000h\000\000\000\000\000\240\005G\000\174\004\188\000\248\006\171\000\000\001\210\000\000\000\000\0027\000\000\000\000\000\000\004\171\001\001\004\190\0058\007\152\006e\0050\000\000\000\000\000\000\005O\005|\000\000\005T\000i\000\000\000\000\004W\000\174\000\000\001\203\005l\001\204\004E\005M\005t\007\232\0059\000\000\005u\001O\005v\000\000\007\234\005O\000\000\002\170\005T\000\184\000\000\002:\0052\000\000\000\000\002;\005l\004\199\000\000\000i\000\000\000\000\004\187\004s\005n\000\000\0057\000\000\000\000\007\232\000\240\005G\005F\004\188\004\173\004\200\007\242\007\183\004\174\000\000\004\201\000\000\002\171\000\000\004\202\000\000\000\000\0058\005r\000\000\004\203\000\000\000\174\005.\000\000\000\145\000\000\000l\000\174\001\175\001\176\003\170\001\180\000\000\000\000\000\000\0027\000\000\000\000\007(\004\171\0059\004\190\005u\000\000\005v\000\000\007\184\005O\002\172\000\000\005T\006\227\000\000\000\000\001O\000h\000\000\000\174\005l\004\199\000l\000\183\004E\005\140\005t\000\000\000\000\000\129\000\000\000\000\001\182\000\222\002\246\0050\000\000\000\000\000\000\004\200\002\174\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\001\199\004s\004\203\002\167\002\234\002\212\000h\001\209\000\000\000\129\005F\000\240\004\173\004\171\002\168\004\172\004\174\000\000\0052\000\000\000\000\001\202\000\000\007\235\001\218\007\236\000\000\000\000\004\187\000\000\000i\005.\0057\001O\0027\002\223\000\240\005G\004\171\004\188\004\190\002\215\000\130\000\134\000\151\000\000\000\000\000\225\000\000\002\177\000\000\000\226\000\000\0058\000\137\007\235\000\174\007\236\000y\000\000\000\000\004E\005\140\005t\000\000\001O\000\174\001\175\001\176\003\187\001\180\000i\000\000\000\000\000\130\000\000\004\173\0059\000\000\005u\004\174\005v\0050\006\246\005O\000\239\001\251\005T\000\000\000\129\004s\002\179\000\000\000\222\002\245\005l\004\199\000\000\000\000\005F\000\183\004\173\000l\000\000\000\000\004\174\002\180\006\247\000\000\001\182\006\250\006\169\006\170\000\000\004\200\000\000\000\000\0052\000\000\004\201\005.\001\210\000\000\004\202\000\000\001\253\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\001\183\000\240\005G\004\171\004\188\004\190\005\147\000\000\000\000\000l\000\000\004a\000\000\000\000\001\203\000\000\001\204\000\000\0058\000\000\000\130\000\174\001\186\000\000\001O\000\225\004E\005\140\005t\000\226\001\233\000\129\000\000\000\240\000\000\000\231\000\241\0050\000h\000\000\000\237\000h\0059\000h\005u\000\000\005\148\000\000\000\000\005O\007b\000\000\005T\006\171\000\129\004s\000\184\004\187\000\222\002\244\005l\004\199\000\000\000\239\005F\000\240\004\173\000\242\004\188\000\000\004\174\001\231\0052\000\000\007c\000h\007f\006\169\006\170\004\200\000\000\000h\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\000\004\188\004\203\005\149\000\130\000\184\0027\000\000\000\000\000\225\004\171\000i\004\190\000\233\000i\0058\000i\000\000\000\000\000\000\001\189\000\174\001\175\001\176\003\192\001\180\000\000\000\130\000\174\000\000\000\000\000\000\000\225\004E\005\178\005t\000\226\001\183\000\000\0059\000\000\005u\000\000\005\148\0050\000h\005O\000\239\000i\005T\000\140\004\189\000\143\000\240\000i\000\183\000\241\005l\004\199\001\186\000\000\006\171\004s\000\000\001\182\000h\000h\001\233\000\000\000\000\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\007|\0052\007b\004\201\000\000\000l\000\000\004\202\000l\000\242\000l\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\005\167\000\000\007c\000\000\007f\006\169\006\170\000\000\000i\006\205\000\000\000\000\0058\005\180\000\000\000\174\000\000\000\000\000l\000\000\004E\005\178\005t\000\000\000l\000\000\000\000\000\240\000i\000i\000\241\000\000\000\000\006\206\006\169\006\170\0059\000\000\005u\000\000\005\148\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\004s\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\134\005F\000\134\004\173\000\242\000\000\000\000\004\174\000\000\000\000\000\000\000\137\001\213\000\137\000\000\000y\004\200\000y\007\"\0052\007\144\004\201\005.\000l\006\171\004\202\000\000\000\242\000h\004\187\000\000\004\203\000\243\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\007 \000l\000l\005\182\007#\006\169\006\170\002/\005\200\000\244\000\000\006\171\0058\002=\000\245\000\174\000\000\001\183\000\000\000\000\004E\005M\005t\000\000\000\246\000\174\001\175\001\176\004$\001\180\000\000\0050\000\000\000\000\000\000\000\000\0059\0027\005u\001\186\005\181\0028\000\000\005O\000\000\0029\005T\001\233\000\129\004s\000\000\000i\000\222\002\243\005l\004\199\000\000\000\000\005F\000\183\004\173\000h\000\000\000\000\004\174\000\000\0052\007e\001\182\002Y\000\000\000\000\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\006\171\004\202\000\000\000\240\005G\000\000\004\188\004\203\000\184\000\184\007c\0027\007f\006\169\006\170\004\171\000\174\004\190\000\000\007\147\0058\002\170\000\000\001\247\004T\002:\000\000\000\000\000\000\002;\000h\000\000\000\130\000\174\000\000\000\000\000\000\000\225\004E\000\000\005E\000\226\000l\000\000\0059\000i\005u\000\000\005\181\0050\006\242\005O\000\000\000\000\005T\000\000\002\214\000\000\000\000\000\000\000\000\000\129\005l\004\199\000\000\000\222\000\224\004s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\005F\000\000\004\173\000h\000\000\004\200\004\174\000\000\0052\001\199\004\201\000\000\000\000\006\171\004\202\000\000\001\209\002\172\004\187\000i\004\203\005.\0057\000\000\000\129\000\000\000\240\005G\000\231\004\188\001\202\000\000\000\000\000\237\0027\000\000\000\000\000\000\004\171\000\000\004\190\000l\0061\0058\000\000\000\000\005\186\002\174\000\000\000h\000\130\000\000\000\000\000\129\002\149\000\225\000\174\000\222\002\236\000\226\000\000\004E\002\167\005E\002\212\001\183\000\000\0059\000i\005u\000\240\005v\0050\002\168\005O\000\000\007\187\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\001\186\000\000\000\130\004s\000l\004G\000\239\000\225\001\233\000\000\000\000\000\233\005F\002\215\004\173\000\000\000\000\004\200\004\174\000\000\0052\002\177\004\201\000\000\000\000\000\000\004\202\000i\000\242\000\000\004\187\000\130\004\203\005.\0057\000\000\000\225\000\000\000\240\005G\000\226\004\188\000\184\001\210\000\000\000\239\0027\000\000\000\000\000h\004\171\000\000\004\190\000l\006A\005\175\000\000\005X\005\186\000\000\000\000\000h\000\000\002\179\000\000\000\000\000\000\005[\000\174\006\205\001\203\000\000\001\204\004E\000\239\005E\000\000\000h\002\180\0059\001O\005J\005\177\000\000\0050\000h\005O\000\000\000\240\005T\000\000\000\241\000\184\006\206\006\169\006\170\000\000\005l\004\199\000l\000\000\000h\004s\000\000\000\000\000\000\000\000\005\216\000\000\000\000\000\000\005F\000\000\004\173\000i\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\242\000\000\000\000\004\202\000i\000\240\000\000\004\187\000\241\004\203\005.\0057\000\000\000\129\000\000\000\240\005G\000\231\004\188\002\165\000i\000\000\000\235\0027\000\000\000\000\000\000\004\171\000i\004\190\000\000\006C\005\175\000\000\000\240\005\186\000\000\000\241\000h\000\242\007\191\000\000\004_\000\000\000i\000\174\000\000\006\205\006\171\000\000\004E\000\000\005E\000\129\000\000\000\000\0059\000\231\005J\005\177\000\000\0050\000\232\005O\000l\004d\005T\000\243\000\242\000\000\000\000\006\206\006\169\006\170\005l\004\199\000l\000\000\000\130\004s\004e\000\000\000\000\000\225\000\000\000\000\000\244\000\233\005F\000\000\004\173\0017\000l\004\200\004\174\000\000\0052\000\000\004\201\000\000\000l\000\246\004\202\000i\004i\000\000\004\187\000\000\004\203\005.\0057\000\000\000\000\000\000\000\240\005G\000l\004\188\000\130\000\000\000\000\000\239\0027\000\225\000\000\000\000\004\171\000\233\004\190\000\000\007\196\005\175\000\000\000\000\005\186\000\000\000\000\007\204\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\006\205\001B\006\171\004E\005M\005t\000\184\000\000\000\000\0059\000\000\005J\005\177\006\205\0050\000\239\005O\000\000\000\184\005T\000\000\005\224\007\001\000\000\006\206\006\169\006\170\005l\004\199\000l\000\000\000\000\004s\005\240\004\176\000\000\000\000\006\206\006\169\006\170\000\000\005F\004\185\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\006\205\004\202\000\000\000\240\000\184\004\187\000\241\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\005\249\000\000\000\000\000\000\000\000\006\206\006\169\006\170\006\205\000\000\000\000\005\175\001F\000\000\000\174\000\000\000\000\000\000\000\242\004E\000\000\005E\000\000\000\000\000\240\000\000\000\000\000\241\006\171\000\000\000\000\000\000\006\206\006\169\006\170\0059\000\000\005J\005\177\000\000\0050\006\171\005O\000\000\005\004\005T\001\018\000\129\004s\007\012\000\000\000\231\000\000\005l\004\199\000\000\000\237\005F\000\242\004\173\000\000\000\000\000\000\004\174\000\000\000\244\000\000\000\000\000\000\001\019\000h\000\000\004\200\001\020\000\000\0052\000\000\004\201\005.\000\000\000\246\004\202\006\171\000\000\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\007\210\000\000\000\000\000\000\005\186\000\000\000\248\b\000\000\000\000\000\006\171\0058\000\000\000\130\000\174\000\000\000\000\001\003\000\225\004E\005M\005t\000\233\000\000\000\000\000\000\000\000\000\000\000\129\000\000\0050\000\000\000\222\002(\000h\0059\000i\005u\000\000\005v\000\000\000\000\005O\000\000\000\000\005T\000\000\000\129\004s\007\025\000\000\000\222\0021\005l\004\199\000\000\000\239\005F\000\000\004\173\000\000\000\000\007\023\004\174\000\000\0052\000\000\000\174\001\175\001\176\004*\001\180\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\000\004\188\004\203\000\000\000\000\006\205\0027\000\000\000\130\005\195\004\171\000\000\004\190\000\225\000i\005\175\000\183\000\226\007\021\000\000\000\000\000\000\000\000\000l\000\000\001\182\000\000\000\130\000\174\006\206\006\169\006\170\000\225\004E\000\000\005t\000\226\000\000\000\000\0059\000\000\005J\005\177\006\205\0050\0073\005O\000\000\000\000\005T\000\000\000\239\000\000\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\000\000\000\004s\000\000\000\000\000\000\000\000\006\206\006\169\006\170\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\006\205\004\202\000l\000\242\000\000\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\000\000\006\171\000\000\006\206\006\169\006\170\000\184\000\000\005x\0058\000\243\000\000\000\174\000\000\000\000\000\000\000\000\004E\000\000\005E\000\000\006\012\000\174\001\175\001\176\004/\001\180\000\000\000\240\000\244\000\000\000\241\000\129\0059\001:\005u\000\231\005v\0050\006\171\005O\000\235\000\000\005T\000\246\000\129\004s\000\240\000\000\000\231\000\241\005l\004\199\000\000\000\237\005F\000\183\004\173\000\000\000\000\000\000\004\174\000\242\000\000\000\000\001\182\000\000\000\000\000\000\000\184\004\200\000\000\000\000\0052\001\183\004\201\005.\000\000\000\000\004\202\006\171\000\242\000\000\004\187\006\028\004\203\000\000\0057\006\205\0027\000\000\000\240\005G\004\171\004\188\004\190\001\186\000\130\000\000\000\000\000\000\000\000\000\225\000\000\001\233\000\000\000\233\005D\005\197\000\000\000\130\000\174\006\206\006\169\006\170\000\225\004E\000\000\005E\000\233\000\000\0071\000\000\000\000\000\174\000\000\000\000\0050\000\000\004E\000\000\000\000\0059\000\000\005u\000\000\005\199\000\000\000\000\005O\000\239\000\000\005T\000\000\000\129\004s\000\000\000\000\000\222\0024\005l\004\199\000\000\000\239\005F\000\000\004\173\000\000\004s\007/\004\174\000\000\0052\000\000\000\000\000\000\002\r\001\182\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\174\004\202\000\000\000\240\005G\004E\004\188\004\203\000\000\000\000\000\000\0027\006\171\000\000\000\000\004\171\000\000\004\190\000\000\000\174\005H\000\000\000\000\007@\000\000\000\000\000\000\000\000\000\000\005N\000\000\000\000\000\130\000\174\004s\000\000\000\000\000\225\004E\000\000\005E\000\226\001\183\001\182\0059\000\240\005J\005K\000\241\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\001\186\000\000\000\000\004s\000\000\000\000\000\000\000\000\001\233\001F\000\000\000\239\005F\000\000\004\173\000\242\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\001\199\006\205\004\202\000\000\000\242\000\000\004\187\001\209\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\001\018\000\000\001\202\000\000\006\205\000\000\006\206\006\169\006\170\005G\000\000\000\000\005H\000\243\000\000\000\174\000\000\000\000\000\000\000\244\004E\000\000\005E\001\019\000\000\007>\000\000\001\020\006\206\006\169\006\170\000\000\000\244\000\000\000\246\000\000\0059\002]\005J\005K\000\000\0050\000\000\005O\000\000\000\000\005T\000\246\000\129\004s\000\240\006g\000\231\000\241\005l\004\199\005O\000\237\005F\005T\004\173\000\000\005G\000\000\004\174\000\000\000\000\005l\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\0052\000\000\004\201\005.\000\000\000\000\004\202\006\171\000\242\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\001\210\000\000\006i\006\171\000\000\000\000\000\000\005O\000\000\005H\005T\000\130\000\174\000\000\000\000\000\000\000\225\004E\005l\005E\000\233\000\000\000\129\000\000\005c\000\000\000\231\001\203\0050\001\204\000\000\000\237\000\000\0059\000\000\005J\005K\001O\000\000\000\000\005O\000\000\000\000\005T\000\000\000\129\004s\000\000\000\000\000\222\002H\005l\004\199\000\000\000\239\005F\000\000\004\173\000\000\000\000\000\000\004\174\000\000\0052\000\000\000\174\001\175\001\185\000\000\001\180\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\000\004\188\004\203\000\000\000\130\000\000\0027\005\151\000\000\000\225\004\171\000\000\004\190\000\233\000\000\005\144\000\183\000h\007z\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\130\000\174\000\000\000\000\000\000\000\225\004E\000\000\005E\000\226\000\000\000\000\0059\007\127\005J\005\146\000\174\0050\000\000\005O\000\239\000\000\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\000\000\000\004s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000i\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\000\000\005\143\000\000\000\000\000\000\000\000\000\000\001\199\000\000\005\144\000\243\000\000\000\174\000\145\001\209\000\000\000\000\004E\000\000\005E\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\001\202\000\244\000\000\000\000\000\000\0059\002_\005J\005\146\000\000\0050\000\000\005O\000\000\000\000\005T\000\246\000\000\004s\000\240\000\000\000l\000\241\005l\004\199\000\000\000\000\005F\000\000\004\173\000\242\000\000\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\0052\001\183\004\201\005.\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\000\243\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\001\186\000\000\000\000\005\163\000\000\000\000\000\000\000\000\001\233\000\244\000\000\000\000\005\164\000\000\004\192\000\174\000\000\000\000\000\000\000\000\004E\000\129\005E\000\000\000\246\000\231\000\134\001\154\000\000\000\000\000\232\0050\001\210\000\000\000\000\000\000\0059\000\137\005J\005\166\000\000\000y\000\000\005O\000\000\000\000\005T\000\000\000\129\004s\000\000\000\000\000\231\000\000\005l\004\199\005\227\000\237\005F\001\203\004\173\001\204\000\000\000\000\004\174\000\000\0052\000\000\000\000\001O\000\000\000\000\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\130\004\188\004\203\000\000\000\000\000\225\0027\005\161\000\000\000\233\004\171\000\000\004\190\000\000\000\000\005\144\000\000\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\130\000\174\000\222\002N\000\000\000\225\004E\000\000\005E\000\233\000\000\000\000\0059\000\000\005J\005\146\000\239\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005l\004\199\000\000\000\000\000\129\004s\000\000\000\000\000\222\002Q\000\000\000\000\000\000\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\004\187\000\130\004\203\005.\0057\000\000\000\225\000\000\000\240\005G\000\226\004\188\000\000\000\000\000\000\000\000\0027\000\000\000\000\000h\004\171\000\000\004\190\000\000\000\000\005\175\000\000\000\000\005\179\000\000\000\000\000\000\000\000\007\200\000\000\000\000\000\240\000\130\000\174\000\241\000\000\000\000\000\225\004E\000\239\005E\000\226\000\000\000\000\0059\000\000\005J\005\177\000\000\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\242\000\000\004s\000\000\0027\000\000\000\000\000\000\0028\000\000\000\239\005F\0029\004\173\000i\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\145\000\000\007\212\000\000\005\175\000\243\000\240\000\174\001\005\000\241\000\000\000\000\004E\000\000\005E\000\000\000\000\000\000\000\000\002\170\000\000\000\000\000\000\002:\000\244\000\000\000\000\002;\0059\004\194\005J\005\177\000\000\0050\000\000\005O\000l\000\000\005T\000\246\000\242\004s\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\000\005F\000\000\004\173\000\000\002\218\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\0052\000\000\004\201\005.\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\002\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\215\000\000\007\201\000\000\000\000\000\174\000\000\000\000\000\134\001\159\004E\000\000\005E\000\000\000\000\000\000\000\000\000\000\000\000\000\137\002\174\0050\000\000\000y\000\000\000\000\0059\000\000\005J\007\203\000\000\000\000\000\000\005O\000\000\002\167\005T\002\212\000\000\004s\000\000\000\000\000\000\000\240\005l\004\199\002\168\000\000\005F\000\000\004\173\000\000\000\000\000\000\004\174\000\000\0052\000\000\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\002\215\000\240\005G\000\000\004\188\004\203\000\000\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\007\201\000\000\004\171\000\000\004\190\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\174\000\000\000\000\000\000\0059\005\214\005J\007\203\000\000\0050\000\000\005O\002\179\000\000\005T\000\000\000\000\000\000\000\000\000\000\000\129\000\000\005l\004\199\000\222\004\131\000\000\002\180\000\000\005\245\000\000\000\000\000\000\000\129\005\248\000\000\000\000\004\171\000\000\004\190\000\174\004\200\000\000\005\254\0052\004\173\004\201\000\000\000\000\004\174\004\202\000\000\000\130\000\000\004\187\000\174\004\203\000\225\0057\000\000\005\214\000\233\000\240\005G\005\255\004\188\000\000\000\000\006\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\201\000\000\000\000\000\000\000\000\006'\000\130\000\000\000\129\000\000\005\248\000\225\000\231\000\000\000\000\000\226\000\239\000\235\000\000\005\254\000\000\004\173\000\000\000\000\0059\004\174\005J\007\203\006$\000\000\001\199\005O\004\195\000\000\005T\001D\000\000\001\209\000\000\000\000\005\255\000\000\005l\004\199\006\001\000\000\000\000\000\000\000\000\000\239\000\000\001\202\000\129\000\000\000\000\000\000\004\171\000\000\004\190\000\000\000\000\004\200\000\000\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\130\000\174\000\000\004\203\000\000\000\225\005\214\000\000\004\187\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\240\006\002\0027\004\188\002\225\000\000\004\171\000\000\004\190\000\240\000\000\000\000\000\241\000\000\005\247\000\000\000\000\005\136\000\000\005\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\005\254\000\000\004\173\005\128\000\000\000\000\004\174\000\000\000\000\002\227\000\000\000\000\000\000\000\000\000\240\000\242\000\000\000\241\000h\004\187\006\003\005\255\000\000\006&\000\000\006\001\000\000\000\240\006\002\000\129\004\188\006\026\004\199\002T\001\210\000\000\002[\000\000\000\000\002\170\000\000\004\173\000\000\001\018\0058\004\174\000\000\000\000\000\242\000\000\004\200\000\174\000\000\000\000\000\000\004\201\000h\000\000\006\015\004\202\005.\001\203\000\244\001\204\000\000\004\203\001\019\000\000\000\000\000\000\001\020\001O\000\000\000\000\000\000\006\003\004J\000\246\006\b\000h\000\000\000\240\000\000\000i\000\241\000\000\006\026\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\002V\000\000\000\000\000\000\002W\005\134\000\000\000\000\004\200\000\000\004\195\000\000\002\227\004\201\0050\000\000\000\000\004\202\000\242\000\000\004\187\000\129\000\145\004\203\000i\000\222\004\162\000\000\000\240\006\002\000\000\004\188\000\129\000\129\000\000\002`\002T\000\222\004\165\002[\002a\000\000\000\000\000\000\000\129\0058\001\018\000i\002T\0052\000\000\002[\000\000\000\000\000\174\000\000\000\000\000\000\000l\004\187\000\145\000\000\000\000\0057\000\000\000\244\000\174\000\240\000\000\001\019\004\188\000\000\000\000\001\020\000\000\000\000\006\003\000\000\000\000\006\b\000\246\000\000\000\000\000\145\005\136\000\000\000\130\006\026\004\199\000\000\000\000\000\225\000\000\000\000\000\000\000\226\000l\000\130\000\130\000\000\002V\000\000\000\000\000\225\002W\000\000\004\200\000\226\0059\000\130\000\000\004\201\002V\000\000\000\000\004\202\002W\000\000\000\000\000l\000\000\004\203\000\240\000\000\000\000\002b\000\000\004\199\000\000\000\239\000\000\000\134\003\138\0027\000\000\002`\000\000\004\171\000\000\004\190\002a\000\239\000\137\000\000\000\000\004\200\000y\002`\002c\002\240\004\201\000\000\002a\000\000\004\202\000\000\000\000\000\000\000\000\002f\004\203\000\000\005'\006>\000\129\000\000\000\000\000\000\002T\000\134\003\143\002[\000\000\002g\000\000\000\000\000\000\000\000\000\000\000\000\000\137\001O\000\000\002h\000y\000\000\000\174\000h\000\000\000\000\000\000\000\000\000\134\004\015\000\000\000\000\000\000\000\000\002\170\000\000\004\173\002i\000\000\000\137\004\174\000\000\002j\000y\000\000\000\000\002k\000\240\000\000\000\000\000\241\000\000\002l\000\000\000\000\005.\002\141\000\000\000\240\000\240\000\000\002b\000\241\000\000\000\000\000\130\000\000\000\000\002V\000\000\000\240\000\000\002W\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\002c\002\158\000\000\000\000\000i\000\000\000\000\000\000\000\000\000\242\000\000\002f\002c\002d\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\0050\002f\002a\002g\0027\000\000\000\000\000\000\004\171\000\000\004\190\001O\000\129\002h\000\000\002g\000\222\004\168\000\145\000\000\000\000\000\000\000\000\001O\000\000\002h\000\000\000\000\000\000\000\000\000\000\002i\000\000\005'\005\137\0052\002j\000\000\0027\000\000\002k\000\000\004\171\002i\004\190\004\187\002l\000\000\002j\0057\002\141\0027\002k\000\240\000l\004\171\004\188\004\190\002l\000\000\000\000\000\000\002\141\000\000\000\000\000\000\000\000\005'\005\127\002\170\0058\004\173\000\000\000\000\000\000\004\174\000\000\000\130\000\000\000\000\005'\005(\000\225\000\000\000\240\0027\000\226\002b\000\000\004\171\005.\004\190\000\000\000\000\0059\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\000\000\004\173\000\000\000\000\000\000\004\174\002c\004\178\000\000\004\199\005'\0056\002\170\000\000\004\173\000\000\000\239\002f\004\174\000\000\005.\000\000\000\000\000\134\004\020\000\000\000\000\004\200\000\000\000\000\000\000\002g\004\201\005.\000\137\000\000\004\202\0050\000y\001O\000\000\002h\004\203\000\129\000\000\000\000\002\170\002T\004\173\000\000\002[\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\002i\000\000\000\000\000\000\000\000\002j\000\174\000\000\005.\002k\000\000\000\000\0050\0052\000\000\002l\000\000\000\000\000\000\002\141\000\000\000\000\000\000\004\187\000\000\0050\000\000\0057\000\129\000\000\000\000\000\240\002T\000\000\004\188\002[\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\0052\0058\000\130\000\174\000\000\002V\000\000\000\000\000\000\002W\004\187\000\000\0050\0052\0057\000\000\000\000\000\000\000\240\000\000\000\000\004\188\000\000\004\187\000\000\0059\000\242\0057\000\000\000\000\000\000\000\240\000\000\000\000\004\188\0058\000\000\000\000\000\000\000\000\002`\000\000\000\000\000\000\004\199\002a\000\130\0052\0058\002V\000\000\000\000\000\000\002W\000\000\000\000\000\000\004\187\000\000\0059\000\000\0057\004\200\000\000\000\000\000\240\000\000\004\201\004\188\000\000\0027\004\202\0059\000\000\004\171\000\000\004\190\004\203\004\199\000\000\000\000\000\000\0058\000\000\002`\000\000\000\000\000\000\000\000\002a\000\000\004\199\000\000\000\000\000\000\000\000\004\200\000\000\000\000\005'\005\139\004\201\000\000\000\000\000\000\004\202\0059\000\000\000\000\004\200\000\000\004\203\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\000\000\000\000\004\203\004\199\000\000\000\240\000\000\000\000\002b\000\000\000\000\000\000\000\000\002\170\000\000\004\173\000\000\000\000\000\000\004\174\000\000\004\200\000\000\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\002c\0054\000\000\005.\000\000\004\203\000\129\000\000\000\000\000\000\002T\002f\000\000\002[\000\000\000\000\000\000\000\000\000\240\000\000\000\129\002b\000\129\000\000\000\231\002g\000\231\000\000\000\174\000\235\000\000\000\232\000\000\001O\000\000\002h\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\002c\005Q\0027\000\000\000\000\000\000\004\171\000\000\004\190\002i\0050\002f\000\000\000\000\002j\000\000\000\000\000\129\002k\000\000\000\000\000\231\000\000\000\000\002l\002g\000\232\000\130\002\141\000\000\002V\005'\006W\001O\002W\002h\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\130\000\000\0052\000\225\000\000\000\225\000\000\000\233\000\000\000\233\002i\000\000\004\187\000\000\000\000\002j\0057\000\000\000\000\002k\000\240\000\000\002`\004\188\002\170\002l\004\173\002a\0027\002\141\004\174\000\000\004\171\000\000\004\190\000\000\000\000\0058\000\000\000\130\000\000\000\239\000\000\000\239\000\225\005.\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\006Y\000\000\000\000\0059\0027\000\000\000\000\000\000\004\171\001B\004\190\001D\000\000\000\000\000\129\000\000\000\000\000\000\002T\000\000\000\000\002[\004\199\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000h\000\000\005'\006[\002\170\000\174\004\173\0050\000\000\004\200\004\174\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\240\000\000\000\000\002b\004\203\005.\000\000\007\187\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\240\000\241\002\170\000\241\004\173\000\000\0052\004G\004\174\000\000\002c\006\005\000\130\000\000\000\000\002V\004\187\000\000\000\000\002W\0057\002f\000\000\005.\000\240\000\000\001F\004\188\000\000\000i\000\000\000\000\000\242\000\000\000\242\002g\000\000\000\000\000\000\000\240\0050\0058\000\241\001O\000\000\002h\000\000\0027\000\000\001L\002\157\004\171\000\000\004\190\000\000\002a\000\000\001O\000\000\000\000\001\018\000\000\000\000\002i\000\000\0059\000\000\000\000\002j\000\000\000\000\000\000\002k\000\242\0050\0052\005\130\000\000\002l\000\244\000\000\000\248\002\141\001\019\004\199\004\187\000\000\001\020\000\000\0057\000\000\000\129\001\007\000\240\000\246\002T\004\188\000\000\002[\000\000\000\000\000l\004\200\000\000\000\000\000\000\000\000\004\201\000\000\0052\0058\004\202\002\170\000\174\004\173\000\000\000\000\004\203\004\174\004\187\000\248\000\000\000\000\0057\000\000\000\000\000\000\000\240\000\000\000\000\004\188\001\t\000\000\005.\0059\000\129\000\000\000\240\000\000\002T\002b\000\000\002[\000\000\0058\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\130\000\174\000\000\002V\000\000\000\000\000\000\002W\007\191\000\000\005a\000\000\0059\000\000\000\000\004\200\000\000\000\000\002f\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\0050\000\000\004\203\004\199\002g\004d\000\129\000\000\000\000\000\000\002T\000\000\001O\002[\002h\002a\000\130\000\000\000\129\002V\005f\004\200\002T\002W\000\000\002[\004\201\000\000\000\174\000\000\004\202\000\000\002i\000\000\000\000\0052\004\203\002j\000\000\000\000\000\174\002k\000\000\000\000\005j\004\187\000\000\002l\000\000\0057\000\000\002\141\000\000\000\240\002\152\000\000\004\188\000\000\000\129\002a\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\0058\000\130\000\000\000\000\002V\000\000\000\000\000\000\002W\000\000\000\174\000\000\000\000\000\130\000\000\000\000\002V\000\000\000\000\000\000\002W\000\000\000\000\000\000\0059\000\000\000\000\000\240\000\129\000\000\002b\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\002\143\000\000\000\000\000\000\004\199\002a\000\000\000\000\000\000\000\000\000\000\000\174\002\156\000\000\000\130\000\000\000\000\002a\000\000\000\225\000\000\000\000\004\200\000\233\000\000\002f\000\000\004\201\000\000\000\000\000\000\004\202\000\240\000\000\000\000\002b\000\000\004\203\000\000\002g\000\000\000\000\000\000\000\000\000\000\000\000\002\153\001O\000\000\002h\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\002i\000\000\002f\000\000\000\000\002j\000\000\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\002l\002g\000\000\000\000\002\154\000\240\000\000\000\000\002b\001O\000\000\002h\000\000\000\000\000\000\000\239\000\000\000\240\000\129\000\000\002b\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\002i\000\000\000\000\000\000\000\000\002j\000\000\000\000\000\000\002k\000\000\000\174\000\000\002f\000\000\002l\000\000\000\000\000\000\002\141\000\000\000\000\000\000\000\000\000\000\002f\000\000\002g\000\240\000\129\000\000\000\241\000\000\000\231\000\000\001O\000\000\002h\000\235\002g\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001O\000\000\002h\000\000\000\174\000\000\000\000\000\130\002i\002\007\000\000\000\000\000\225\002j\000\000\000\242\000\233\002k\000\000\000\000\002i\000\240\000\129\002l\000\241\002j\000\231\002\141\000\000\002k\000\000\000\235\003\t\000\000\000\000\002l\000\000\000\000\000\000\002\141\001O\000\000\000\129\001\018\000\174\000\000\000\231\000\130\000\000\002\007\000\239\000\232\000\225\000\000\000\000\000\242\000\233\000\000\000\000\000\129\000\000\000\000\000\244\000\231\000\000\000\000\001\019\000\000\000\232\000\000\001\020\000\000\002\247\000\000\000\000\000\000\000\000\000\246\000\000\000\000\001O\000\000\000\000\001\018\000\000\000\000\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\0027\001\019\000\130\000\000\0028\001\020\000\000\000\225\0029\000\129\000\000\000\233\000\246\000\231\000\000\000\000\000\000\000\000\000\232\000\130\000\000\000\000\000\000\000\000\000\225\000\239\000\000\000\240\000\233\000\000\000\241\000\000\000\000\0027\000\000\000\000\000\000\0028\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\000\000\000\000\000\000\000\000\000\000\000\242\000\239\000\000\000\000\002\170\000\000\000\240\000\000\002:\000\241\000\000\000\000\002;\000\130\000\000\000\000\000\000\002\001\000\225\000\000\000\000\000\000\000\233\000\000\000\000\001O\000\000\000\000\001\018\000\000\000\000\000\000\000\000\000\000\002\007\000\000\000\000\002\170\000\000\002\171\000\242\002:\000\000\000\000\000\000\002;\000\240\000\244\000\000\000\241\000\000\001\019\000\000\000\000\000\000\001\020\000\239\002\t\000\000\000\000\000\000\000\000\000\246\000\000\000\000\001O\000\240\000\000\001\018\000\241\000\000\0027\002\171\000\000\002\016\0028\002\172\000\000\000\000\0029\000\242\000\000\000\000\000\240\000\000\000\000\000\241\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\000\002\018\000\000\000\000\000\242\000\000\000\246\000\129\000\000\001O\002\174\000\231\001\018\002\172\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\002\167\002\231\002\212\000\129\000\174\000\000\000\244\000\231\000\240\000\000\001\019\002\168\000\235\000\000\001\020\002\170\000\000\000\240\002\174\002:\000\241\000\246\000\000\002;\000\000\000\174\000\248\000\000\000\000\000\000\000\000\000\000\002\223\002\167\002\229\002\212\000\129\001\011\002\215\000\000\000\231\000\240\000\000\000\248\002\168\000\235\002\177\000\130\000\000\000\000\002\171\000\242\000\225\000\000\001\r\000\129\000\233\000\000\000\174\000\231\000\000\000\000\000\000\000\000\000\232\002\223\000\000\000\000\000\130\000\000\000\000\002\215\000\129\000\225\000\000\000\000\000\231\000\233\000\000\002\177\000\000\000\235\000\129\000\000\000\000\000\000\000\231\002\172\002\179\000\000\000\239\000\235\000\000\000\000\000\174\000\000\000\000\000\000\000\248\000\000\000\000\000\130\000\000\002\180\000\174\000\000\000\225\000\000\000\000\001\023\000\233\000\239\000\000\000\000\000\000\000\000\000\000\002\174\000\000\000\000\000\130\002\179\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\002\167\002\210\002\212\000\000\002\180\000\130\000\000\000\000\000\240\000\000\000\225\002\168\000\239\000\000\000\233\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\239\002\223\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\240\000\000\000\000\000\241\000\000\000\000\002\177\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\002\007\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\000\000\000\000\000\000\002\179\002\007\000\000\003\r\000\000\000\000\000\240\000\242\0027\000\241\000\000\001O\0028\000\000\001\018\002\180\0029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\000\240\000\000\000\000\000\241\000\000\000\000\000\000\001O\000\244\002\007\001\018\000\000\001\019\000\000\000\000\000\242\001\020\000\240\000\000\000\000\000\241\000\000\000\000\000\246\000\000\000\000\000\000\000\240\000\000\000\244\000\241\0027\003\023\001\019\000\242\0028\000\000\001\020\0027\0029\001O\000\000\0028\001\018\000\246\002\007\0029\000\000\002\170\000\000\000\000\000\242\002:\000\000\000\129\004\150\002;\000\000\000\231\000\000\000\000\000\242\000\244\000\235\000\000\000\000\001\019\000\000\004\129\000\000\001\020\000\000\000\000\000\000\000\000\000\000\001O\000\246\004\152\001\018\000\000\000\248\000\000\002\171\000\000\000\000\001O\000\000\000\000\001\018\000\000\000\000\001\025\000\000\000\000\000\000\002\170\000\000\000\244\000\000\002:\000\000\001\019\002\170\002;\000\000\001\020\002:\000\244\000\000\000\000\002;\001\019\000\246\000\000\000\000\001\020\000\129\000\000\000\130\002\172\000\231\000\000\000\246\000\225\000\000\000\235\000\000\000\233\000\000\000\000\002\171\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\000\000\002p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\002\167\004\237\002\212\002\172\000\000\000\000\000\000\000\000\000\240\000\000\002\172\002\168\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\002\223\002\174\000\235\000\000\000\000\000\000\002\215\000\000\002\174\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\167\007\206\002\212\000\000\000\000\000\000\000\000\002\167\000\240\002\212\000\000\002\168\000\239\000\129\000\000\000\240\000\000\000\231\002\168\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\240\002\223\000\000\000\241\000\235\000\000\000\000\002\215\000\000\002\179\000\000\000\130\000\000\000\000\002\215\002\177\000\225\000\000\000\000\000\000\000\233\000\000\002\177\000\000\002\180\000\000\000\000\000\000\001\021\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\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\239\000\000\000\233\002\179\004[\000\000\000\130\000\000\001\018\000\240\002\179\000\225\000\241\000\000\000\000\000\233\000\000\000\000\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\180\000\000\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\239\002\227\000\000\000\000\000\000\000\129\000\246\000\242\000\000\000\231\000\000\000\000\000\000\000\239\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\004g\000\000\000\000\000\000\000\000\000\240\000\129\000\000\000\241\000\000\000\231\000\000\000\000\000\244\000\000\000\235\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\130\000\000\000\000\000\000\002\227\000\225\000\000\004o\000\000\000\233\000\242\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\004v\000\000\004\207\000\000\000\000\000\240\000\129\000\000\000\241\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\001\018\000\000\002\227\000\000\000\130\000\239\000\000\000\000\000\242\000\225\000\000\000\000\000\000\000\233\000\000\002\227\000\000\000\000\000\000\000\244\000\000\000\242\000\000\001\019\000\000\000\000\005\b\001\020\000\000\000\129\000\000\000\000\000\000\000\231\000\246\000\000\001\018\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\001\018\000\000\000\000\000\000\000\130\000\000\000\244\000\000\000\000\000\225\001\019\000\000\000\000\000\233\001\020\000\000\000\129\000\000\000\000\000\244\000\231\000\246\000\000\001\019\000\000\000\235\005\n\001\020\000\000\0027\000\000\000\000\000\000\0028\000\246\000\000\000\000\0029\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\130\000\000\000\239\000\000\000\000\000\225\000\129\000\129\000\000\000\233\000\231\000\231\000\000\000\000\000\000\000\235\000\235\000\000\000\000\000\000\000\000\001\021\005\012\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\240\000\130\000\000\000\241\000\000\000\000\000\225\000\000\000\239\000\000\000\233\000\000\000\000\000\000\002\170\000\000\000\000\000\000\002:\000\000\001\018\000\000\002;\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\130\000\130\000\000\000\244\000\000\000\225\000\225\001\019\000\239\000\233\000\233\001\020\000\000\000\240\000\000\000\000\000\241\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\239\000\239\000\244\000\000\000\242\000\000\001\019\002\172\000\000\000\000\001\020\000\240\000\000\000\000\000\241\000\000\000\000\000\246\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\129\000\000\000\000\001\018\000\231\000\000\000\000\000\000\002\174\000\235\001\021\000\000\000\000\005_\000\000\000\000\000\242\000\000\000\240\000\000\000\129\000\241\000\244\002\167\000\231\002\176\001\019\000\000\000\000\000\235\001\020\000\240\000\129\000\000\002\168\000\000\000\231\000\246\000\000\000\000\000\000\000\235\000\000\000\000\001\018\000\000\002\227\000\000\005h\005p\000\000\000\000\000\242\000\240\000\240\000\130\000\241\000\241\000\000\000\000\000\225\000\000\000\000\000\244\000\233\000\130\000\000\001\019\000\000\002\177\000\225\001\020\000\000\000\000\000\233\000\000\000\000\000\000\000\246\000\000\001\018\002\227\002\227\000\000\000\000\000\130\000\000\000\242\000\242\000\000\000\225\000\000\000\129\000\000\000\233\000\000\000\231\000\130\000\239\000\244\000\000\000\235\000\225\001\019\000\000\000\000\000\233\001\020\000\239\000\000\000\000\002\179\000\000\000\000\000\246\001\018\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\180\000\129\000\239\000\000\000\000\000\231\000\000\000\000\000\244\000\244\000\235\000\129\001\019\001\019\000\239\000\231\001\020\001\020\000\000\000\000\000\235\000\000\000\000\000\246\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\219\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\005\231\000\000\000\000\000\000\000\000\000\240\000\000\000\130\000\241\000\000\000\000\000\000\000\225\000\000\000\000\000\239\000\233\000\130\000\000\000\000\005\236\000\000\000\225\002\227\000\000\000\240\000\233\000\000\000\241\000\242\000\000\000\000\005\243\002\227\000\000\000\000\000\000\000\240\000\000\000\242\000\241\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\239\000\235\000\000\002\227\000\129\000\000\000\000\001\018\000\231\000\242\000\239\000\000\007\170\000\235\000\129\002\227\000\000\001\018\000\231\000\000\000\000\000\242\000\000\000\235\000\000\000\000\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\244\001\018\000\000\000\000\001\019\000\246\005\252\000\000\001\020\000\000\000\000\000\240\000\000\001\018\000\241\000\246\000\000\000\000\000\000\000\000\000\244\000\130\000\000\000\000\001\019\000\000\000\225\000\000\001\020\000\000\000\233\000\000\000\244\000\130\000\000\000\246\001\019\000\000\000\225\002\227\001\020\006\019\000\233\000\130\000\000\000\242\000\240\000\246\000\225\000\241\000\000\006\024\000\233\000\000\000\000\000\000\000\240\000\000\000\129\000\241\000\000\000\000\000\231\000\000\000\239\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\000\001\018\002\227\000\000\000\239\000\000\b\015\000\000\000\242\000\000\000\000\000\000\002\227\000\000\000\239\000\000\000\000\000\000\000\242\000\000\000\244\000\000\000\000\000\129\001\019\000\000\000\000\000\231\001\020\000\000\000\000\000\000\000\235\000\000\000\000\000\246\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\000\000\000\000\000\000\000\130\000\000\000\129\000\000\000\244\000\225\000\231\000\000\001\019\000\233\000\000\000\235\001\020\000\000\000\244\000\000\000\000\000\000\001\019\000\246\000\000\000\000\001\020\000\240\000\000\000\000\000\241\000\000\000\000\000\246\006\031\000\000\000\000\000\000\000\000\000\240\000\000\000\130\000\241\000\000\000\000\000\000\000\225\000\239\000\000\000\240\000\233\000\000\000\241\000\000\000\000\007\171\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\129\002\227\000\000\000\000\000\231\000\130\000\000\000\242\000\000\000\235\000\225\001;\000\129\000\000\000\233\000\000\000\231\000\242\000\239\000\000\000\000\000\235\000\000\001\018\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\001\018\001\019\000\000\000\239\000\000\001\020\000\000\000\000\000\000\000\244\000\000\000\000\000\246\001\019\000\000\000\000\000\000\001\020\000\240\000\244\000\130\000\241\000\000\001\019\000\246\000\225\000\000\001\020\000\000\000\233\000\000\000\129\000\130\000\000\000\246\000\231\000\000\000\225\000\000\000\000\000\235\000\233\000\000\000\000\000\130\000\000\007\171\000\000\000\000\000\225\000\000\000\000\000\242\000\233\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\239\000\235\000\000\000\000\000\000\001\018\000\000\000\000\001\017\000\000\000\240\000\000\000\239\000\241\000\242\000\000\000\129\000\000\000\000\000\000\000\231\000\130\000\000\000\000\000\244\000\235\000\225\000\000\001\019\000\000\000\233\000\000\001\020\000\000\000\000\000\000\000\000\000\000\001H\000\246\000\000\000\000\001\018\000\000\000\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\130\000\000\000\000\000\000\000\244\000\225\000\000\000\239\001\019\000\233\000\000\000\000\001\020\000\240\000\000\001\018\000\241\000\000\000\000\000\246\000\000\000\000\000\000\000\129\000\130\000\240\000\000\000\231\000\241\000\225\000\000\000\000\000\235\000\233\000\244\000\000\000\000\000\240\001\019\000\000\000\241\002\022\001\020\000\239\000\000\000\000\000\000\000\242\000\000\000\246\000\000\000\000\000\000\002\024\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\129\002r\000\000\000\239\000\231\000\000\000\000\000\242\000\000\000\235\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\130\000\240\000\000\000\000\000\241\000\225\000\244\000\000\000\000\000\233\001\019\001\018\000\000\000\000\001\020\000\000\000\000\000\000\000\244\000\000\000\000\000\246\001\019\000\000\000\000\000\000\001\020\000\000\000\000\002\145\000\244\000\000\000\000\000\246\001\019\000\242\000\000\000\240\001\020\000\000\000\241\000\130\000\000\000\239\000\000\000\246\000\225\000\129\000\000\000\000\000\233\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\240\000\000\001\018\000\241\002\161\000\000\000\000\000\000\000\000\000\129\000\242\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\244\000\000\000\239\000\000\001\019\000\000\000\000\003\001\001\020\000\000\000\000\000\000\000\000\000\242\000\000\000\246\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\129\000\000\000\231\000\000\000\231\000\130\000\000\000\235\000\000\000\235\000\225\000\244\000\000\000\000\000\233\001\019\001\018\000\000\000\240\001\020\000\129\000\241\000\000\000\000\000\231\000\000\000\246\000\000\000\130\000\235\000\000\000\000\000\000\000\225\000\000\000\244\000\000\000\233\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\000\0049\000\000\000\239\000\000\000\246\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\130\000\000\000\130\000\000\000\000\000\225\000\129\000\225\000\239\000\233\000\231\000\233\000\000\000\000\000\000\000\235\000\000\001\018\000\000\000\000\000\000\000\000\000\130\000\000\004?\000\000\000\000\000\225\000\000\000\000\000\242\000\233\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\239\001\020\000\239\000\000\000\000\000\000\000\000\000\000\000\246\000\129\000\000\000\000\000\000\000\231\000\000\001\018\000\000\000\000\000\235\000\000\000\000\000\000\000\239\000\000\000\240\000\000\000\129\000\241\000\130\000\000\000\231\000\000\000\000\000\225\000\244\000\235\000\000\000\233\001\019\000\000\000\000\000\000\001\020\000\000\000\000\000\000\000\000\000\240\000\000\000\246\000\241\000\000\004\134\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\000\000\000\000\000\239\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\242\000\240\000\233\000\240\000\241\001\018\000\241\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\240\000\244\000\000\000\241\000\000\001\019\004\139\000\000\004\143\001\020\000\000\000\000\000\242\000\239\000\242\000\000\000\246\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\248\000\000\000\235\000\129\004\181\000\129\000\239\000\231\000\000\000\231\000\242\001\027\000\235\000\000\000\235\000\129\001\018\000\000\001\018\000\231\000\000\000\000\000\000\000\000\000\235\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\244\001\018\001\019\000\000\001\019\000\000\001\020\000\000\001\020\000\000\000\000\000\000\000\000\000\246\000\000\000\246\004\209\000\000\000\000\000\000\000\244\000\130\000\242\000\000\001\019\000\000\000\225\000\000\001\020\000\000\000\233\000\130\000\000\000\130\000\240\000\246\000\225\000\241\000\225\000\000\000\233\000\000\000\233\000\130\000\000\000\000\000\000\000\000\000\225\000\000\001\018\000\240\000\233\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\239\000\000\000\000\000\000\000\242\000\244\000\000\000\000\000\000\001\019\000\239\000\000\000\239\001\020\000\000\005+\000\000\000\000\000\000\000\129\000\246\000\242\000\239\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\129\001\018\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\129\000\000\000\129\000\000\000\231\000\000\000\231\000\000\001\018\000\235\000\244\000\235\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\129\000\000\000\000\000\000\000\231\000\000\000\246\000\000\000\244\000\232\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\000\000\000\000\000\000\000\000\240\000\246\000\130\000\241\000\000\000\000\000\000\000\225\000\000\000\000\000\240\000\233\000\240\000\241\000\130\000\241\000\000\000\000\000\000\000\225\000\000\000\000\000\240\000\233\000\130\000\241\000\130\000\000\005\206\000\225\000\000\000\225\000\000\000\233\000\242\000\233\000\000\000\000\0065\000\000\006I\000\000\000\000\000\130\000\242\000\239\000\242\000\000\000\225\000\129\006K\000\129\000\233\000\231\000\000\000\231\000\242\000\239\000\232\000\000\000\232\000\129\001\018\000\000\000\000\000\231\000\000\000\239\000\000\000\239\000\232\000\000\001\018\000\129\001\018\000\000\000\000\000\231\000\000\000\000\000\000\000\244\000\232\000\000\001\018\001\019\000\239\000\000\000\000\001\020\000\000\000\244\000\000\000\244\000\000\001\019\000\246\001\019\000\000\001\020\000\000\001\020\000\000\000\244\000\000\000\000\000\246\001\019\000\246\000\000\000\000\001\020\000\000\000\000\000\130\000\000\000\130\000\000\000\246\000\225\000\000\000\225\000\000\000\233\000\000\000\233\000\130\000\240\000\000\000\000\000\241\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\000\129\000\000\000\000\000\233\000\231\000\240\000\000\000\240\000\241\000\232\000\241\006M\000\000\000\239\000\000\000\239\000\000\000\242\000\000\000\000\000\000\000\000\000\000\006S\000\240\000\239\000\000\000\241\000\000\000\242\000\000\000\000\000\000\006a\000\000\006o\000\000\000\239\000\000\000\242\000\000\000\242\000\000\000\000\000\129\001\018\000\000\000\000\000\231\000\000\000\129\000\000\000\000\000\232\000\231\000\000\000\000\001\018\000\242\000\232\000\000\000\000\000\129\000\000\000\244\000\130\000\231\001\018\001\019\001\018\000\225\000\232\001\020\000\000\000\233\000\000\000\244\000\000\000\000\000\246\001\019\000\000\000\000\000\000\001\020\000\000\000\244\000\000\000\244\000\000\001\019\000\246\001\019\000\000\001\020\000\240\001\020\000\240\000\241\000\000\000\241\000\246\000\000\000\246\000\000\000\248\000\000\000\240\000\239\000\130\000\241\000\000\000\000\000\000\000\225\000\130\001\029\000\000\000\233\000\240\000\225\000\129\000\241\000\000\000\233\000\231\000\000\000\130\000\000\000\242\000\232\000\242\000\225\000\000\000\000\000\000\000\233\000\000\000\129\000\000\000\000\000\242\000\231\000\000\000\000\000\129\000\000\000\232\000\000\000\231\000\000\000\000\000\239\000\242\000\232\000\000\000\000\000\129\000\239\000\000\000\000\000\231\000\000\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\239\000\129\000\000\000\000\000\232\000\231\000\248\000\000\000\248\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\130\001\031\000\248\001!\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\001#\000\248\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\130\001%\000\233\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\130\000\000\000\242\000\000\000\000\000\225\000\000\000\239\000\130\000\233\000\000\000\000\000\240\000\225\000\130\000\241\000\000\000\233\000\240\000\225\000\000\000\241\000\000\000\233\000\239\000\000\000\000\000\000\000\000\000\000\000\240\000\239\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\000\000\000\000\248\000\129\000\239\000\242\000\000\000\231\000\000\000\000\000\239\000\000\000\232\001'\000\000\000\000\000\000\000\242\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\240\000\000\000\231\000\241\000\248\000\000\000\000\000\232\000\000\000\000\000\248\000\000\000\000\000\000\000\000\001)\000\000\000\240\000\000\000\000\000\241\001+\000\248\000\000\000\240\000\000\000\130\000\241\000\000\000\000\000\000\000\225\000\000\001-\000\242\000\233\000\240\000\129\000\000\000\241\000\000\000\231\000\000\000\130\000\240\000\000\000\232\000\241\000\225\000\000\000\240\000\242\000\233\000\241\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\239\000\242\000\000\000\233\000\129\000\000\000\000\000\000\000\231\000\242\000\000\000\000\000\248\000\232\000\000\000\242\000\129\000\239\000\000\000\000\000\231\000\000\000\129\001/\000\000\000\232\000\231\000\000\000\000\000\248\000\129\000\232\000\000\000\130\000\231\000\000\000\248\000\239\000\225\000\232\0011\000\000\000\233\000\000\000\000\000\000\000\000\0013\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\0015\000\000\000\000\000\248\000\000\000\000\000\000\000\000\002n\000\000\000\130\000\000\000\129\000\000\002t\000\225\000\231\000\239\000\000\000\233\000\000\000\232\000\130\000\240\000\000\000\000\000\241\000\225\000\130\000\000\000\000\000\233\000\000\000\225\000\000\000\000\000\130\000\233\000\000\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\242\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\239\000\129\000\000\000\000\000\000\000\231\000\239\000\000\000\000\000\242\000\232\000\000\000\130\000\000\000\239\000\000\000\129\000\225\000\000\000\000\000\231\000\233\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\240\000\000\000\000\000\241\000\129\000\248\000\129\000\000\000\231\000\000\000\231\000\000\000\000\000\232\000\000\000\232\002v\000\000\000\000\000\129\000\000\000\239\000\248\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\130\002x\000\242\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\248\000\000\000\000\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\002z\000\240\000\130\000\233\000\241\000\000\000\000\000\225\000\000\000\240\000\000\000\233\000\241\000\000\000\000\000\000\000\130\000\242\000\130\000\000\000\000\000\225\000\239\000\225\000\000\000\233\000\000\000\233\000\248\000\242\000\000\000\130\000\000\000\000\000\000\000\242\000\225\000\239\000\000\002|\000\233\000\000\000\000\000\242\000\000\000\239\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\239\000\000\000\129\000\248\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\239\002~\000\248\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\242\000\000\000\000\002\128\000\000\000\000\000\248\000\000\000\000\002\130\000\000\000\000\000\000\000\000\000\000\000\129\000\000\002\132\000\000\000\231\000\240\000\000\000\000\000\241\000\232\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\129\000\232\000\240\000\000\000\231\000\241\000\000\000\000\000\000\000\232\000\240\000\130\000\000\000\241\000\248\000\000\000\225\000\000\000\000\000\129\000\233\000\242\000\000\000\231\000\240\002\134\000\240\000\241\000\232\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\240\000\000\000\129\000\241\000\000\000\242\000\231\000\000\000\130\000\000\000\000\000\232\000\000\000\225\000\000\000\239\000\000\000\233\000\130\000\242\000\000\000\242\000\000\000\225\000\000\000\000\000\130\000\233\000\000\000\248\000\000\000\225\000\000\000\000\000\242\000\233\000\000\000\129\000\000\000\000\002\136\000\231\000\000\000\000\000\248\000\130\000\232\000\000\000\000\000\000\000\225\000\239\000\248\000\000\000\233\002\138\000\129\000\000\000\000\000\000\000\231\000\239\000\000\002\140\000\000\000\232\000\248\000\130\000\248\000\239\000\000\000\000\000\225\000\000\000\129\000\000\000\233\002\182\000\231\002\184\000\000\000\248\000\129\000\232\000\000\000\000\000\231\000\000\000\239\000\000\000\000\000\232\002\186\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\129\000\239\000\233\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\130\000\000\000\129\000\000\000\000\000\225\000\231\000\000\000\000\000\233\000\242\000\232\000\240\000\000\000\000\000\241\000\000\000\000\000\130\000\000\000\000\000\000\000\240\000\225\000\239\000\241\000\130\000\233\000\000\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\000\000\000\000\240\000\000\000\000\000\241\000\130\000\000\000\000\000\242\000\248\000\225\000\000\000\000\000\239\000\233\000\000\000\242\000\000\000\000\000\130\002\188\000\239\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\248\000\000\000\000\000\239\000\232\000\000\000\000\000\000\000\000\000\000\000\248\002\190\000\242\000\240\000\000\000\000\000\241\000\239\000\248\000\000\000\000\002\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\129\000\000\000\240\000\000\000\231\000\241\000\129\000\248\000\000\000\232\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\242\002\196\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\240\000\248\000\130\000\241\000\000\000\000\000\000\000\225\000\242\000\000\000\000\000\233\002\198\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\129\000\000\000\232\000\000\000\231\000\000\000\242\000\240\000\000\000\232\000\241\000\000\000\000\000\000\000\242\000\000\000\248\000\130\000\000\000\000\000\000\000\240\000\225\000\130\000\241\000\239\000\233\002\200\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\242\000\000\000\000\000\130\000\000\000\239\000\248\000\000\000\225\002\204\000\130\000\239\000\233\000\000\000\129\000\225\000\000\002\206\000\231\000\233\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\248\000\000\000\000\000\231\000\000\000\000\000\129\000\000\000\232\000\000\000\231\002\208\000\000\000\239\000\248\000\232\000\000\000\000\000\000\000\240\000\239\000\000\000\241\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\129\000\000\000\231\000\000\000\231\000\000\000\000\000\232\000\000\000\232\000\130\000\000\000\000\000\000\000\000\000\225\000\129\000\242\000\240\000\233\000\231\000\241\000\129\000\000\000\240\000\232\000\231\000\241\000\130\000\000\000\000\000\232\000\000\000\225\000\000\000\130\000\000\000\233\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\239\000\000\000\000\000\000\000\000\000\242\000\240\000\000\000\000\000\241\000\130\000\248\000\130\000\240\000\000\000\225\000\241\000\225\000\239\000\233\000\000\000\233\004\211\000\000\000\000\000\239\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\130\000\000\000\000\000\233\000\000\000\225\000\242\000\000\000\000\000\233\000\000\000\000\000\248\000\242\000\000\000\000\000\000\000\000\000\248\000\239\000\000\000\239\000\129\004\213\000\000\000\000\000\231\000\000\000\000\004\215\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\004\217\000\000\000\240\000\000\000\000\000\241\000\000\004\219\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\242\000\240\000\000\000\240\000\241\000\000\000\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\240\000\000\000\000\000\241\000\248\000\239\000\000\000\000\000\000\000\000\000\242\000\000\000\242\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\242\000\248\000\000\000\000\000\000\004\223\000\242\000\000\000\000\000\000\000\000\000\000\004\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\227\000\000\004\229\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\004\231\000\240\000\000\000\000\000\241\000\000\004\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\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\235"))
+    ((16, "\001G\000\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\001g\000\000\001u\001\n\000\000\001e\000\215\000\000\000\000\000\000\000m\000!\000\000\000\000\000,\000\166\001\002\000\000\000\000\001L\000\000\000\000\001\\\000\000\001\212\000\000\000\000\000\000\002Z\000\000\002h\000\000\000\000\000\000\002x\000\000\002\234\000\000\000\000\002\254\003b\000\000\000\000\003x\003\166\003\196\000\000\000\000\003\218\000\000\000\000\003\226\000\000\004\000\000\000\000\000\000\000\004\n\000\000\004.\000\000\004\150\004\226\000\000\000\000\005\018\000\000\005\136\005\146\005\162\000\000\000\000\006\018\000\000\006\024\000\000\000\000\0066\000\000\006:\000\000\000Z\000\000\002\164\003\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\003\128\000\000\000s\000\000\000\000\004\242\000\000\000\000\000\152\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\006\168\000\000\000\000\000\246\t\022\000\000\000\000\026\224\000\000\000\000\000\000\000\000\007<\000\000\007F\t\148\000\000\007`\000\000\000\000\007j\000\000\000\000\007\164\000\000\007\192\000\000\000\000\000\000\007\236\000\000\000\214\b\006\0028\000\000\000\150\000\000\000\000\000\000\003\242\000\000\002\228\000\000\000\000\000\000\012\236\000\000\000\000\b\144\000\2530\244\000\000\000\000\003\154\005\202\000\000\026\136\000\000\b\162!\016\t\174,\016&\240,h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\218\011\192\000\000\000\000\019t\024\022\028\188\000\000\030d\000\142\000\000\000\000-\154\031\204\000\000\000\000\000\000\004l\000\000\015\024,h:B\000\000\000\000\0128\000\000\003$\000\000\0056\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\000\000\000\000\b\192\000\000\016\222\000\000\017^\000\000\026\200\000\000\027@\000\000\"\018\000\000$X\000\000%\156\000\000)\152\000\00000\000\0008 \000\000\000\007\000\000\000\000\000\000\000\000\022\002\000\000\000\000\000\000\000\0002h\000\0007\000\000\000FF\000\000I8\000\000K\024\000\000KH\000\000K\148\000\000K\220\000\000K\234\000\000K\250\000\000LB\000\000L\164\000\000L\242\000\000M\006\000\000M\132\000\000M\162\000\000\005\172\000\000\000\000\b\006\000\000\000\000\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160C\000\000\000\002j\000\000\000\000\002\166\002\184\000\000\002l\b \000\000\000\000\bJ\b\200\000\000\000\000\t6\t@\tH\000\000\000\000\tr\000\000\000\000\t\154\000\000\t\172\000\000\000\000\000\000\t\182\000\000\t\202\000\000\t\244\000\000\t\252\000\000\000\000\n\024\n0\000\000\000\000\n2\nF\nJ\000\000\000\000\nR\000\000\000\000\nT\000\000\nj\000\000\000\000\000\000\nl\000\000\nr\000\000\nt\nv\000\000\000\000\n\134\000\000\n\138\n\144\n\148\000\000\000\000\n\152\000\000\n\156\000\000\000\000\n\168\000\000\n\202\000\000\004\146\011\166\000\000\n\208\000\000\n\212\014\020\000\000\n\216\000\000\000\000\n\218\000\000\n\220\000\000\n\224\000\000\000\000\000\000\n\228\000\000\n\236\002\238\000\000\000\000\000\000\n\238\000\000\011\138\000\000\000\000\016&\r\156\000\000\0048\000\000\b\182\000\000\000\000\020@\005\198\000\000\000\000\000\000\000\000\000\023\0068\000\000\007x\000\000\000\000\000\000\016>\000\000\018\022\000\000\026\002\000\000\000\000\000\000\000\000\000\000\000\000\027J\000\000\000\000\000\161\000\000\001\178\000\000\000\000\000\000\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002l\b\022\003d\000\000\n\244\000\000\n\248\005t\000\000\n\250\000\000\000\000\000\000\t\004\000\000\000\000\000\000\000\000\003\028\000\000\000\000\025n\000\000\000\000\000\000\000\t74\000\000 \1702\138\000\000\000\000\000\000\000\0007\1969\220\000\000\000\0002\220\000\000\000\000\000\000\007\1347\206C<\000\000C\162\000\000\000\000\000\0008^\021\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \254\000\000\000\000\000\000\000\000\016*8\178\023\170\000\000\"\240\000\000\000\000#D\000\000\004\244\000\000\000\000\r\182\000\000\000\000\000\000\024\208\000\000,\150\007T\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\136\000\000\000\000\000\000\018\1943j+B\000\000\000\0000\"\000\000\005\204\000\000\019\220\000\000\000\000\000\000\025<\000\000-.\000\000\029\242\000\000%x\000\000\000\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\190\000\000:\148\000\000\028f\000\000M\204\000\000M\236\000\000N\144\000\000N\148\000\000N\176\000\000N\248\000\000O`\000\000Ox\000\000O\170\000\000O\198\000\000PN\000\000Pj\000\000P\132\000\000\000\0003\158\000\000C\198\000\000\000\000\000\000\025P\000\000\000\000\000\000\000\000\000\000\000\0004t\000\000\000\000\000\000\000\000D\150\000\000\000\000\000\000\025\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000 \220\000\000\000\181\000\000\000\000\000\000P\152\000\000P\234\000\000QB\000\000QR\000\000Q\168\000\000Q\170\000\000Q\246\000\000R\\\000\000R\190\000\000R\220\000\000R\234\000\000R\250\000\000S\020\000\000S\148\000\000\000\000\000\000\000\000\000\000#\"\000\000\000\000\022\194>\216\000\000\000\000D\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0030\000\000\000\000\000\000\000\000\000\145\000\000\000\000E\148\000\000\000\000\000\000\tZ\001h\000\000\000\000\000\000\000\000\000\000Vv\000\0005,\000\000\000\000\000\000\000\000\000\0005L\000\000\000\000\000\0005\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\002\000\000\011\004\007\200\000\000\011&\000\000\000\000\003\200\015\212\000\000\004\172\000\000\000\000\000\000\000\000\0048\000\000\0112\000\000\000\000\001g\003\158\000\000\t\132\000\000\000\000\000\000\001\006\000\000\017\014\000\160\011J\000\000\000\000\011R\011X\000\000\000\000\011Z\011\\\011x\000\000\000\000\011\130\000\000\000\000\011\138\000\000\011\154\000\000\000\000\000\000\011\160\000\000\011\178\000\000\011\182\000\000\011\188\000\000\000\000\011\194\011\206\000\000\000\000\011\210\011\216\012\004\000\000\000\000\012\n\000\000\000\000\012\014\000\000\012\018\000\000\000\000\000\000\012\"\000\000\012$\000\000\012&\012(\000\000\000\000\012*\000\000\0120\0122\0128\000\000\000\000\012<\000\000\012D\000\000\000\000\012H\000\000\012L\000\000\006\152\019T\000\000\012P\000\000\012X\022R\000\000\012x\000\000\000\000\012|\000\000\012\140\000\000\012\156\000\000\000\000\000\000\012\162\000\000\001\140\000\000\000\000\000\000\005\146\001\138\000\000\000\000\006\202\000\000\000\000\012\168\015\134\000\000\012\170\000\000\000\000\000\000\005.\000\000\000\000\000\000\004F\000\000\000\000\000\000\000\000\000\000\012z\015\224\000\000\012\174\000\000\012\192\018\028\000\000\012\210\000\000\000\000\014\016\012\228\000\000\000\000\012\238\012\246\000\000\000\000\012\250\r\000\r\n\000\000\000\000\r\016\000\000\000\000\r\018\000\000\r2\000\000\000\000\000\000\r4\000\000\r8\000\000\rV\000\000\rX\000\000\000\000\r^\rd\000\000\000\000\rl\rt\r\134\000\000\000\000\r\138\000\000\000\000\r\140\000\000\r\144\000\000\000\000\000\000\r\146\000\000\r\148\000\000\r\150\r\164\000\000\000\000\r\172\000\000\r\180\r\188\r\196\000\000\000\000\r\200\000\000\r\212\000\000\000\000\r\214\000\000\r\216\000\000\006\198\024x\000\000\r\226\000\000\r\232\025\216\000\000\r\244\000\000\000\000\r\246\000\000\r\252\000\000\014\000\000\000\000\000\000\000\014\026\000\000\014*\019`\000\000\0142\000\000\000\000\017V\020\254\000\000\0144\000\000\0146\0232\000\000\014:\000\000\000\000\000\000\000\000\000\000\000\000\000\000E\168\000\000-\250\000\000\000\000\000\000E\208\000\000\000\000\n\128\000\000\000\000\000\000\000\024\t\016\000\000\000\000:*\000\000\000\000\016\n\000\000\000\000\000\000\000\000\t\154\000\000\011\004\000\000\000\000\0314\000\000\000\000\000\000:\190\000\000\000\000\000\000\000\000\000\000%\246\000\000\000\000\000\000\000\253\000\000:\230\000\000\000\000\000\000\000\000\004\168\012\132\000\000;\016\000\000\000\000\000\000\000\000\0142\000\000;\244\000\000\000\000\000\000\000\000\001\"\000\000\b\250\000\000\000\0001<5\230\000\000\000\000\000\000Fb\000\000\000\000\000\000\001\140\000\000Fd\000\000\000\000\000\000F\184\000\000\000\000\004\"\000\000\031\216\000\0276:\000\000\000\000\000\000\006>\015f\000\000\000\000\000\000\000\000\000\000\000\0003\218\000\000\000\0004\162\000\000\000\000=\200\000\000\b6\000\000\020\006\000\000\000\000\000\000\026V\000\000-\200\000\000\000\000Gr\000\000\000\000\000\000\027\156\000\000\000\000\000\000\000\000\000\000\000\000(0\000\000(\228\000\000\000\000\000\000\007\138\000\000\000\000\000\000\000\000\000\000\000\000S\188\000\000;\200\000\000K(\000\000S\242\000\000T\006\000\000T<\000\000TX\000\000T\162\000\000T\214\000\000T\216\000\000T\250\000\000UV\000\000U\144\000\000U\236\000\000V\016\000\000V4\000\0009\138\000\000\000\000\000\000\004\134\000\000\006&\000\000\017\214\002D\n\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\166\000\000.\194\002\248\027\252\000\000\000\000\000\000< \000\000<\226\000\000=\002\000\000/\002/\198\r\196\b\238\000\000\b\002\012\222\000\000\000\000\000\000\012\232\000\000\000\000\018\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H4\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\218\000\0000\206\000\000\000\000\000\000\018\162\000\000\000\000\007\198\000\000\000\000\000\000 \140\000\142\000\000!@\000\000\000\000\000\000\000\000\004\026\000\000\000\000\019j\000\000\"\030\000\000\000\0000\140\000\000\000\000\000\000=L\000\000\000\000\012D\000\000\000\000\012 \000\000\000\000+\002\000\000\000\000\000\000=\158\000\000\000\000\000\000+\200\000\000\000\000\000\000\000\000>Z\000\000\000\000\000\000\000\000\004\184\015\228\000\000>\172\000\000\000\000\000\000\000\000\000\000\000\000\020 \000\000\000\000\005\142\000\000\021\026\000\000\012D\000\000\000\000\007\178\005\n\000\000\007\188\000\000\000\000\000\000\000\000\007\138\000\0001\180\000\000\"\210\000%#\134\000\000\000\246\000\000\021\178\000\000\022~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000$d\006\146%\024\000\000\000\000\000\000\007\148\000\000\023\134\000\000\b~\000\000\000\000\r\224\000M%\204\000\000\003J\000\000\024R&\170\000\000\000\000\024\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\220\011\012\000\000\t \000\000\000\000\000\000\000\000\005\236\000\000\025Z\000\000\000\000\000\000\011\240Hv\000\000\000\000\000\000\t\222\000\000\000\000\000\000\000\000\000\000\000\148\015T\000\000\000\000?h\000\000\000\000\014\196\000\000\018\222\000\000\000\000,\240\000\000\000\000\000\000?\130\000\000\000\000\000\000\000\000?\224\000\000\000\000\006\184\022f\000\000\000\000@>\000\000\000\000\t\200+N\000\000\023l\000\000\000\000@\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\216\000\000\000\000\000\000@\182\000\000\000\000\004<\000\000\000\000\024$\000\000\000\000-\254\000\000\000\000\000\000A2\000\000\000\000\000\000\000\000A\212\000\000\000\000\bL\024.\000\000\000\000BH\000\000\000\000\t\232\000\000\000\000\000\000\000\000\004<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\158\000\000\026b\000\000\000\000\000\000H\202\000\000\012\158\000\000\000\000\000\000\003n\000\000\020\132\000\000\000\000\005\144\026\248\000\000\028\000\000\000\000\000\000\000\005\192\000\000H\238\006\192I<\000\000I\138\000\000\000\000\000\000\007\020\000\000J \007D\000\000\000\000)z6\012\000\000\b\144*.\000\000\000\000*\226\000\000\000\000\000\000\b\216\000\000JP\b\232\000\000\000\000\020\234\t&\029^\000\000$\016\000\000\000\000\000\000\t\\\000\000J\218\t\128\000\000\000\000\000\000\001\021\000\000\001\020\000\000\000\000\000\000\000\000\000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0007\000\000\000\000\n\238\000\000\015\020\000\000\000\000\000\000\015\028\000\000\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\000\000\015 \000\000\000\000\015\014\000\000\012\128\000\000\000\000\014\146\000\000\001`\014\170\004\238\000\000\000\000\005\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005h\002\236\000\000\000\000\tR\000\000\000\000\000\000\014\254\000\000\000\000\019\244\023j\000\000\000\000\000\000\000\000\023\240\024\152\000\015\000\000\000\000\000\000\024\166\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\t\030\000\000\000\000\014n\000\000\027F\000\000\000\000\000\000\000b\000\000\000\000\017\250\000\000\000o\000\000\000\000\000\000\000\000\n\236\027\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003x\028\158\000\000\000\000\000\000\000\000\028\236\028\246\002\226\000\000\030\"\000\000\000\000\000\000\000\000\000\000\000\000\005~\000\000\015V\000\000\000\000\000\000\018~\000\000\003l\000\000\000\000\000\000\012\188\000\000\000\000\030\214\031\190\006\\\000\000 \"\000\000\000\000\000\000\000\000\000\000\000\000\000\210\014\134\000\000\014\140\000\000 r\007 \000\000!^\000\000\000\000\000\000\000\000\014\150\000\000\015\030\000\000\000\000\000\000\006\196\000\000\000f\014\226\005D\000\000\000\000\000\000\000\r\005\142\000\000\000\000\000\000\000\000\000\000\007\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\002\194\000\000\t\136\015\130\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\014\234\000\000\000\000\018T\"h\000\000\000\000\000\000\000\000\"\232\000\000\000\000\007:\000\000\007\146\012\162\000\000\000\000\000\000\021N\000\000\000\000\000\000\000\000\000\000\000\220\022.\000\000\000\000\023&\000\000\000\000\000\000\000\000\005\154\000\000\000\000\001*\000\000\000\000\000\000\006\184\000\000\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\154\000\000\000\000\000\000\001\224\000\000\000\000\000\000\000\000\000\000\000\026\0004\011\172\012\192\000\000\006\146\007\174\tr\t\140\000\000\000\000\000\000\000\000\000\000\000\000\br\028\222\000\000'^\007b\000\000\000\000\n\132\000\000\029\146\000\0009\188\000\000\000\000\b\214\030F\000\000(\018\000\000\b\220(\198\000\000\000\000\000\000\011&\017&\000\000\000\000\000\000\000\000\006\014\000\000\007p\000B\000\000\000\000\000\204\018\236\000\000\019\152\000\000\000\000\016>\000\000\018\022\000\000\000\000\022\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\030\000\000\000\000\000\000\011\018\000\000\030\250\000\000\r\224\015@\000\000\000\000\000\000\000\000\000\000\005J\000\000\000\000\000\000\000\000\000\000B\174\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\178\000\000\014J\001\186\015\000\000\000\002\196\016B\000\000\006l\000\000\004V\000\000\004\214\000\000\006h\000\000\r\224\000\000\000\000\000\000\000\000\000\000\006\232\000\000\t\130\000\000\bz\000\000\r\224\015\182\000\000\000U\000\000\015\160\bj\000\000\014T\000\000\014X\000\000\000\000\000\000\000\000\000\000\000\000\014\\\000\000\014`\000\000\014d\000\000\000\000\000\000\000\000\000\000\014n\000\000\000\000\000\000\000\000\000\000\015\214\014\146\000\000\000\000\014\202\000\000\000\000\014\158\t\146\016$\000\000\0164\000\000\000\000\002b\004H\000\000\014\236\000\000\000\000\015$\000\000\000\000\000\000\000\000\000\000\000\000\016\026\014\204\000\000\000\000\000\000\015\004\014\212\n\028\007\166\015\004\015@\000\000\000\000\014\226\nN\b\156\015\018\015L\000\000\000\000\011\018\016<\000\000\016D\000\000\016j\000\000\000\000\016J\000\000\000\000\016P\000\000\000\000\000\000\000\000\016^\000\000\016\130\000\000\000\000\000\000\016\148\000\000\000\000\000\000\016\150\000\000\000\000\000\000"), (16, "\002;\003B\000\018\005\184\004\179\006\131\004\198\007d\000\025\000\129\000\129\007\021\007\022\002X\000\231\006\192\002Y\003D\000\r\000\235\006\170\b\132\000\174\005\153\000\174\000\017\002;\004M\005\151\005\127\004\179\b\"\004\198\006\167\b#\000\007\b\133\000p\002;\007\233\000\016\000\017\002<\007\023\006\168\007\234\002=\000\174\000\174\006\171\006\186\006\187\006\193\007\235\007\024\005M\004{\006\168\000\129\003$\000\005\000\174\006\171\006\186\006\187\005N\007\199\004\181\000\174\006\241\006\186\006\187\007f\004\182\000\130\000\130\000r\002Z\000p\000\024\000\225\004N\004{\002[\000\129\007m\000\233\005\194\0056\000h\001\186\005N\002\182\004\181\003\n\001\227\007\181\007\182\007\007\004\182\005J\b'\002;\002\174\003\183\001\223\004\179\002>\004\198\000\174\000\174\0030\005K\002?\0056\003\193\001\206\000q\007\186\002e\000\239\b(\007\b\000\130\000\174\007\011\006\186\006\187\006\188\007\235\b)\005M\000\030\005\198\007\150\004\203\000h\000\174\001H\0058\007\249\006\188\000\174\005\226\000\183\003\193\000\004\b\005\006\188\000\130\007\237\007n\001\186\001\186\000i\002\181\007W\006\242\004{\007\189\007s\006\194\007o\007p\005\153\0058\003\011\005N\000\174\004\181\000\029\000\005\001\224\007\238\005:\004\182\007\189\002\176\b\141\b<\007X\007[\006\186\006\187\007t\004\195\007w\006\186\006\187\005?\0056\000\004\000\129\000\240\005O\005\161\004\196\005\200\005\165\007l\005:\000i\000\240\000\240\006\188\002f\000\241\002\178\000&\b\001\005\147\004\195\004\249\004\250\001M\005?\000\005\0036\001\224\000\240\005O\007\239\004\196\002\171\007q\002\213\001H\007\172\000l\007\160\007\240\000\240\000\174\000\174\002\172\005A\b\014\005\128\000\242\005\159\000\129\0058\005W\007\210\000\231\001\207\005\182\b=\001\208\000\232\001\230\000\149\000\174\001O\005w\004\207\001S\000\130\001H\006\189\006\188\005A\b+\005R\b\016\006\188\007\163\001\017\005W\000#\002\181\004Y\b\018\004\208\006\251\000l\005:\000\220\004\209\004s\005w\004\207\004\210\002\243\006\214\007\201\000\244\004\195\004\211\007\252\001\018\005?\007\253\001S\001\019\000\240\005O\b>\004\196\004\208\001S\000\246\000w\002;\004\209\000\130\007\240\004\179\004\210\004\198\000\225\003E\b@\002\183\004\211\000\"\000\233\b:\000y\000\174\001\179\001\180\0039\001\184\007\025\000\174\007r\003D\002\184\006F\004M\005\151\005\127\005\232\0038\006\215\005\156\005A\007\174\005R\bB\005\249\001\237\003\167\005W\001\238\003\r\003\204\bD\000\141\000\239\000h\000%\000\183\003\171\003\169\005w\004\207\007\252\004{\000(\007\253\001\186\006>\b\004\000y\001P\002;\005N\001S\004\181\004\179\000\b\004\198\001S\004\208\004\182\003\204\007\191\001\250\004\209\007\192\007\132\000\174\004\210\000\131\007\166\000\144\001\186\000\174\004\211\0056\003=\002;\007\235\b.\005\127\004\179\000h\004\198\001S\007\196\001\225\007v\000\132\000\174\001\179\001\180\003'\001\184\000\174\001\179\001\180\001\181\001\184\000\129\000i\006\135\003\011\000\231\000*\000\129\005\139\004{\000\237\002X\006\222\007t\002_\007w\006\186\006\187\005N\000\240\004\181\006H\000\241\005\166\004\203\000\183\004\182\001H\0058\001M\000\183\006\241\006\186\006\187\001\186\b9\006\223\006\186\006\187\001\186\000\145\0056\003\172\003\172\002\174\007\189\004\181\000h\005\184\000i\001S\001S\004\182\bv\000\242\000\174\001\179\001\180\001\240\001\184\000\129\001\255\006\252\005:\000\222\003!\000\130\0056\001N\007s\001S\000\225\000\130\000.\004\195\002Z\000l\000\233\005?\007\007\0000\002[\000\240\005O\000\174\004\196\006\255\005\168\0004\000\183\007\021\007\022\0058\007t\006\188\007w\006\186\006\187\001\186\005\147\002\001\001\224\000\248\007\b\000h\001\187\007\011\006\186\006\187\005\145\006\188\000\239\000i\000\249\004\203\006\188\003*\002e\0058\007$\001\255\000j\0075\000l\005A\000\130\005\128\005:\005\159\001\190\000\225\005W\005\187\007\024\b}\005\182\000\226\001\237\004\195\000h\005Q\000h\005?\005w\004\207\0006\000\240\005O\b4\004\196\000\134\000\146\005K\005:\002;\000;\003\186\007\240\004\179\002\000\004\198\000\137\004\208\005@\004\195\000h\000y\004\209\005?\000i\000\239\004\210\000\240\0068\006\188\004\196\000\174\004\211\003\188\004\249\004\250\007\235\b.\005\127\000\129\006\188\000l\bu\005A\005\147\005\128\001\187\b6\001R\000\240\005W\001\187\000\241\0033\b8\000\240\001S\003\189\002f\000i\000:\000i\005w\004\207\006I\004{\001\186\000\005\000m\005A\001\190\000C\001\238\002;\005N\001\190\004\181\004\179\001\237\004\198\001\238\004\208\004\182\001\237\000\242\000i\004\209\000h\000\129\004\207\004\210\b3\0035\006\226\000@\000\174\004\211\0056\000l\002;\007\235\b.\005\127\004\179\000\130\004\198\004t\004\208\000\240\000?\001\187\000\241\004\209\000\243\005x\001\186\004\210\001\255\002l\001\255\000B\000\129\004\211\001\186\000E\000\231\006\207\003\186\005\141\004{\000\237\000o\000\244\000l\001\190\000l\002m\001<\005N\000G\004\181\003\000\001\237\000\242\000K\002o\004\182\000\246\0058\003\190\007\130\002p\000i\000\130\000\004\b5\002\001\007\150\002\001\000l\007\031\0056\000M\003?\002\174\007d\004\181\0033\003\193\006\207\006H\001S\004\182\003\189\000\174\001\179\001\180\001\245\001\184\000\005\000\129\005\133\001\186\005:\000\231\004\252\000\130\0056\001\249\000\237\000\133\000\225\0070\005K\004\195\000\129\000\129\000\233\005?\000\222\003\029\005l\000\240\005O\b4\004\196\0034\007e\000\183\007W\b\026\b\027\0058\007\240\000Q\000\174\0071\001\186\006=\005@\0074\006\186\006\187\000\184\006\210\004l\000l\006\208\005\209\000h\007f\000\239\001\161\007X\007[\006\186\006\187\007\158\0058\001\235\005K\006#\004\249\004\250\005A\000\130\005\128\005:\b6\000\228\000\225\005W\000P\000\129\0069\b8\000\233\004\179\004\195\004\180\000\130\000\130\005?\005w\004\207\000\225\000\240\005O\b4\004\196\006\208\000\226\000\174\005:\002;\006;\000S\007\240\004\179\b\031\004\198\002:\004\208\005@\004\195\003\173\001\203\004\209\005?\007\168\000\239\004\210\000\240\001\231\000i\004\196\000\174\004\211\000\129\006\188\000\134\007\235\b.\005\127\b+\000\239\000h\001\206\005A\005@\005\128\000\137\b6\006\188\000\240\005W\000y\000\241\000\130\b8\004\181\000\129\007\204\005\171\003\175\006\208\004\182\005w\004\207\006R\004{\006\241\006\186\006\187\005A\000]\001\238\007\189\002;\005N\000X\004\181\004\179\001\203\004\198\006T\004\208\004\182\000W\000\242\001\226\004\209\006\211\006U\004\207\004\210\b7\007g\007Z\b1\000\174\004\211\0056\000\130\001\206\007\235\b.\005\127\000l\006T\005\250\000i\004\208\000\240\001\187\003\191\000\241\004\209\000\243\001\186\007z\004\210\007X\007[\006\186\006\187\000\130\004\211\000\240\002W\007\150\000\241\000\129\004\251\004{\007^\002X\000\244\001\190\002_\003\204\003\193\000\245\005N\000Z\004\181\001\237\000\\\000\242\000\136\006\188\004\182\000\246\0058\000\174\007\216\007s\000\129\0076\007>\b?\002<\000_\000\242\000a\002=\0056\005K\000\174\006\241\006\186\006\187\000\174\007j\007\242\007\169\001\207\000\243\004\195\001\208\007t\003\173\007w\006\186\006\187\000l\000\240\001S\005:\004\196\004\249\004\250\005\171\007d\007\176\007\177\000\244\000\130\b\r\004\195\002Z\001;\006\188\005?\007\204\006;\002[\000\240\005O\b4\004\196\000\246\000\174\001\179\001\180\003,\001\184\0058\007\240\000h\003\174\000\129\000\130\006\\\005@\000\231\002>\006\165\006\166\000h\000\237\003\149\002?\001\207\005\173\007i\001\208\002\161\007\208\006^\007\249\001\243\002e\001\203\001S\000\129\000\183\b\006\006\188\005A\001\205\005\128\005:\b6\004\026\001\186\005W\007M\007f\000\134\b8\006\188\007\153\004\195\001\206\006_\004\247\005?\005w\004\207\000\137\000\240\005O\b4\004\196\000y\004\249\004\250\001\238\002;\001M\006^\007\240\004\179\000i\004\198\000\130\004\208\005@\006b\000h\000\225\004\209\000\148\000i\005\142\004\210\000\233\000\154\000\129\005\142\000\174\004\211\000\222\003\023\006^\007\235\b.\005\127\000h\000\130\000\153\006)\005A\000\129\005\128\000\156\b6\000\231\004\206\005W\001\186\b\137\000\232\b8\000\240\004\249\004\250\002f\004\249\004\250\000\239\005w\004\207\005\144\004{\b_\000h\005\179\005\143\006\194\005E\002\171\002;\005N\000\159\004\181\004\179\000h\004\198\000\240\004\208\004\182\002\172\000h\000i\004\209\000h\005\029\000\161\004\210\bC\b\007\005\176\000\130\000\174\004\211\0056\000l\000\225\004M\005\151\005\127\003\204\000i\000\226\002j\005\181\002k\000\130\007\207\000\165\007\156\000\174\000\225\007g\001S\b\b\002l\007\252\000\233\000\129\007\253\001\207\003<\002X\001\208\004O\002_\004{\001S\005\179\000i\b}\001S\006\254\002m\001U\005N\000\239\004\181\002n\001\187\000i\000\240\002o\004\182\000\241\0058\000i\000h\002p\000i\000h\000\239\002\145\006\225\007\212\001Z\000l\007\204\0056\002\237\000\129\000\174\007}\001\190\000\231\004\178\b+\005\180\005%\000\235\007\204\001\237\b\144\005!\005\203\000l\000\242\006\223\006\186\006\187\005:\006m\000\174\000\130\000\129\001\249\002Z\000\140\004\179\002\254\004\198\004\195\002[\004O\007~\005?\007\127\006o\005$\000\240\005O\b4\004\196\005\029\007\226\000\243\000\174\007\231\005\203\0058\007\240\005\225\000i\005\205\000l\000i\005@\006p\001Y\000\240\000l\bA\000\241\000l\000\244\000\130\006s\007\128\002e\001>\000\225\bb\001\015\006o\000\240\006\000\000\233\000\241\007\129\000\246\006\003\005A\006^\005\128\005:\b6\000\184\005\204\005W\006\t\000\145\004\181\b8\b}\000\242\004\195\006\188\004\182\006{\005?\005w\004\207\003%\000\240\005O\000\184\004\196\006A\005\165\000\242\000\239\002;\006\n\001b\006}\004\179\006\012\004\198\001_\004\208\005@\001\193\001^\007\219\004\209\006~\000l\000\174\004\210\000l\006/\005\030\004M\000\174\004\211\005K\bs\000\134\004M\005\151\005\127\006}\006\129\001a\000\184\005A\006/\005\128\000\137\005\159\000\184\000\240\005W\000y\002f\0062\005_\000\248\006^\004\203\001\251\004{\001H\001d\005w\004\207\004P\004{\000\251\0061\001\186\000h\001f\007\206\006\252\002;\005N\001j\004\181\004\179\000h\004\198\001S\004\208\004\182\0060\007\205\001l\004\209\003\012\004W\006\182\004\210\000\240\b\015\004g\000\241\000\174\004\211\0056\000\134\000\151\004M\005\151\005\127\b\136\005K\006\183\001n\004\195\000\174\000\137\001p\006\185\002l\007\199\000y\000\240\006\r\004l\004\196\002\011\007\020\006\186\006\187\003A\001u\b\173\000\242\006\183\b\143\004{\002m\001S\005\147\004m\000i\003\014\001t\001}\005N\002o\004\181\b\174\004N\000i\003\017\002p\004\182\001z\0058\001y\000h\001\186\001S\001|\001\127\001\017\b~\004q\000\174\001\179\001\185\0056\001\184\000\129\006\014\001\129\001\133\000\231\0064\001\135\001\139\001\138\000\235\004\130\000\244\000\174\006(\004\207\001\025\001\141\007\199\001\151\001\019\005:\001\146\000\174\001\145\000\129\001\148\000\246\001\150\004\179\000\183\004\198\004\195\004\208\001\153\005O\005?\006\188\004\209\001\186\000\240\005O\004\210\004\196\005\163\005\165\000l\000\174\004\211\000h\0058\001\155\005\225\000i\001\160\000l\001\166\005@\001\165\001\168\001\170\000\129\001\172\b~\001\176\000\231\000\130\000h\001\254\001\183\000\235\000\225\001\242\001\015\001\248\001\247\0065\000\233\006J\003)\003/\006\003\005A\005W\005\128\005:\005\159\005_\b~\005W\006\t\000\145\004\181\005_\000h\005w\004\195\003.\004\182\000h\005?\005w\004\207\003;\000\240\005O\003\198\004\196\005\202\005\165\004O\000\239\002;\006\n\000i\003I\004\179\006\012\004\198\003N\004\208\005@\003M\003V\003S\004\209\000\130\000l\007\200\004\210\006\200\000\225\000i\001\015\000\174\004\211\000\184\000\233\003R\004M\005\151\005\127\004O\003U\000h\001C\005A\003X\005\128\000h\005\159\000\174\004\\\005W\006\201\003Z\007\199\005_\003^\000i\006\204\006\186\006\187\007\007\000i\005w\004\207\003`\004{\003b\007\236\000\239\003d\000\174\000\181\003i\002;\005N\004s\004\181\004\179\003h\004\198\003q\004\208\004\182\003n\007\b\000l\004\209\007\011\006\186\006\187\004\210\000\240\007\209\001\187\000\241\000\174\004\211\0056\000\134\001\158\004M\005\151\005\127\000l\000\183\003m\000i\004\195\003p\000\137\003s\000i\003u\001\186\000y\000\240\006\r\001\190\004\196\002\011\003y\003{\003\127\003~\003\129\001\237\000\242\003\139\003\134\004{\000l\003\133\005@\003\136\007\201\000l\006\188\003\138\005N\003\141\004\181\003\143\001S\003\148\002\251\005\028\004\182\003\154\0058\000\129\005 \000\240\001S\002<\000\241\001\017\000h\002=\000\174\001\179\001\189\0056\001\184\003\153\006\014\003\156\006\188\000\129\006\022\005l\000h\000\222\002\253\003\158\000\244\000\184\006(\004\207\001\025\001?\005\029\003\160\001\019\005:\003\164\005\029\000\242\003\181\003\180\000\246\003\197\005c\000\183\004l\004\195\004\208\000h\007\204\005?\003\203\004\209\001\186\000\240\005O\004\210\004\196\006E\005\165\003\202\005q\004\211\000h\0058\004O\000\130\001\017\0040\003\206\002>\005@\001\249\000i\003\211\002;\002?\000\184\003\210\004\179\003\219\004\198\007\200\003\216\000\130\005u\000\244\000i\003\215\000\225\001\025\003\218\003\221\004u\001\019\000\226\005A\000\174\005\128\005:\005\159\000\246\007\235\005W\005M\006\216\004O\005_\003\223\003\227\004\195\003\229\005&\000i\005?\005w\004\207\004y\000\240\005O\005\030\004\196\b\011\005\165\007\201\005\030\003\231\003\233\000i\000\239\003\238\004{\001S\003\237\004\208\005@\000h\003\246\0079\004\209\005N\003\243\004\181\004\210\006\203\001\255\001\190\005\029\004\182\004\211\003\242\000\145\003\245\003\248\001\237\003\250\003\254\004\000\004\004\b;\005A\000l\005\128\0056\005\159\004\003\002;\005W\006\201\004\006\004\179\005_\004\198\004\016\006\204\006\186\006\187\004\011\000\129\005w\004\207\004\n\002X\004\r\002\001\002_\002\171\000l\000\174\004\015\004\018\004\020\007s\007\235\000\240\005M\004\025\002\172\004\208\004\031\000\174\000i\000l\004\209\006\222\004\030\004!\004\210\000h\004#\001\187\004%\000\240\004\211\0058\000\241\007t\000\129\007w\006\186\006\187\004\179\004{\004\198\004)\007\208\005'\005l\006\223\006\186\006\187\005N\004/\004\181\001\190\005\030\004.\0044\004:\004\182\0049\006\175\001\237\000\130\005(\006\179\002Z\000\242\006\220\005:\b,\004l\002[\006\188\0056\000\174\001\179\001\180\003\178\001\184\004\195\000\134\001\163\006\199\005?\006\213\007\001\005q\000\240\005O\b-\004\196\000\137\000i\007/\000l\002\173\000y\007H\007\240\000h\007J\000\130\002d\004\181\b0\007T\007V\002e\000\183\004\182\005u\000\184\007`\000\174\0032\007|\006\188\001\186\000h\000\174\001\179\001\180\003\195\001\184\0058\b\024\006\188\004|\bF\005A\bJ\005R\b2\b^\000\129\b\\\005W\bV\000\231\bX\b8\bZ\004O\000\235\000h\b`\002;\000\183\005w\004\207\004\179\004\128\004\198\000\183\000\174\001\179\001\186\bf\001\188\005:\004g\004U\001\186\bg\000i\bl\000l\004\208\000\174\bm\004\195\004\203\004\209\007\235\005?\005M\004\210\br\000\240\005O\b-\004\196\004\211\000i\004l\bq\by\b{\000\183\007\240\000\240\b\129\b\130\002f\b\134\b0\b\135\001\186\b\138\000\130\005\244\b\139\004{\b\142\000\225\b\145\001\015\b\146\b\163\000i\000\233\005N\b\152\004\181\b\161\b\157\002g\002\244\b\160\004\182\005A\004\195\005R\b2\000\129\b\169\b\167\005W\000\231\000\240\b/\b8\004\196\000\232\0056\b\171\b\176\007\135\000l\005w\004\207\002j\000\000\002k\000\239\000\000\004\205\000\000\002;\006\229\000\000\001S\004\179\002l\004\198\000\000\000\184\000l\004\208\000\000\000h\000\000\000\000\004\209\000\000\000\000\000\000\004\210\000\000\000\000\000\174\002m\005\227\004\211\001\187\004M\002n\005M\000\000\000\000\002o\000\000\000\000\000l\000h\0058\002p\007\204\000\129\000\130\002\145\004\207\000\231\000\000\000\225\000\000\0045\000\232\001\190\000\000\000\233\000\000\000\000\004O\004{\000\000\001\237\000\000\000\000\004\208\000\000\000\174\000\000\005N\004\209\004\181\000\000\000\000\004\210\001\187\005:\004\182\002\229\000\000\004\211\000i\000\000\000\240\000\184\000\000\000\241\004\195\000\000\000\000\000\239\005?\0056\001\190\000\000\000\240\005O\b-\004\196\001\190\005y\001\237\000\000\000\184\002;\000i\007\240\001\237\004\179\000\130\004\198\002\231\b0\006M\000\225\000\000\000\000\005\197\000\242\004V\000\233\000\000\000\000\000\000\005}\000\000\000\174\000\000\000\000\001\222\000\000\004M\000\000\005M\001\190\001\253\000h\005A\001\203\005R\b2\000\000\001\237\0058\005W\001\229\000\000\001\017\b8\000\000\000\000\000\000\000\000\000\000\000\239\000l\005w\004\207\007\n\001\206\004{\000\174\001\179\001\180\003\200\001\184\000\244\000\000\000\000\005N\001\025\004\181\000\000\000\240\001\019\004\208\000\241\004\182\005:\000l\004\209\000\246\007\b\000\000\004\210\007\011\006\186\006\187\000\000\004\195\004\211\000\000\0056\005?\000\000\000\183\000\000\000\240\005O\000\000\004\196\000i\000\000\007\007\001\186\000\000\002;\000\000\000\242\000h\004\179\000\000\004\198\005\195\005\186\000\000\000\000\005\197\000\000\007\208\005F\004g\000\129\0073\000\000\000\000\002X\007\b\000\174\002_\007\011\006\186\006\187\004M\005H\005M\000h\000\240\000\000\005A\000\241\005R\005\188\0058\000\174\004l\005W\0071\000\000\000\000\005_\0074\006\186\006\187\000\000\000\000\000\248\000\000\005w\004\207\000\000\004m\004{\000\000\006\188\000\174\000\000\000\253\000\000\001\249\000\000\005N\000\242\004\181\000i\000l\000\000\004\208\005:\004\182\000\000\000\000\004\209\000\000\000\000\004q\004\210\000\130\001\207\004\195\002Z\001\208\004\211\005?\0056\000h\002[\000\240\005O\001S\004\196\000i\000\000\000\000\000\000\000\000\002;\000\000\000\000\006\188\004\179\000\129\004\198\005#\005\186\000\222\002\250\000\000\000\000\000\000\000\248\005T\000\000\000\174\001\179\001\180\004,\001\184\000\174\000\000\006\188\000\255\002e\004M\005U\005\127\000\000\007\249\000\000\005A\000\000\005R\005\188\000\000\b\000\0058\005W\000\000\005\029\000\000\005_\000\174\000\000\000\000\000\000\000\000\000\000\000\183\005w\004\207\000i\001\187\004{\000\129\000\000\001\217\001\186\002X\000\000\000\000\002Y\005N\000\000\004\181\000\000\000l\000\130\004\208\000\000\004\182\005:\000\225\004\209\000\000\000\129\001\190\004\210\000\226\004\179\000\000\004\180\004\195\004\211\001\237\0056\005?\000\000\002;\000\145\000\240\005O\004\179\004\196\004\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\130\000\000\006\222\000\240\005\132\000\000\002f\000\174\000\000\000\239\000\000\007\249\004M\005U\005\127\000\000\000\130\007\141\007\251\002Z\000\000\000\000\000l\000\174\005\030\002[\006\223\006\186\006\187\005A\000\000\005R\005\134\0058\000\000\000\000\005W\000\130\000\000\004\181\005\136\004{\000\000\000\000\000\000\004\182\000\000\000\000\005w\004\207\005N\000\000\004\181\000\184\002j\000\000\002k\000\174\004\182\000\000\000\000\002e\004M\002\157\001S\000\000\002l\004\208\005:\005\235\000\000\000\000\004\209\0056\007\252\000\000\004\210\007\253\000\000\004\195\000\000\000\000\004\211\005?\002m\001S\000\000\000\240\005O\002n\004\196\004{\000\240\002o\001\203\000\241\000\134\003\146\000\000\002p\001\186\001\213\000\000\002\158\005@\006\188\000\000\000\137\000\174\000\000\002;\001\187\000y\004M\004\179\001\206\004\198\000\000\000\174\001\179\001\180\0042\001\184\000\000\0058\005\135\000\000\000\242\000\000\005A\000\000\005\128\000\174\005\129\000\000\001\190\005W\004M\005U\005\127\005_\000\000\004{\001\237\000\240\000\000\000\000\002f\005w\004\207\000\000\001\186\000\183\000\000\000\000\000\000\000\000\004\195\000\000\005:\007\252\001\186\000\000\007\253\000\000\000\240\004{\004\208\004\196\000\000\004\195\001S\004\209\007s\005?\005N\004\210\004\181\000\240\005O\000\000\004\196\004\211\004\182\000\000\002;\002;\000\000\000\000\002<\004\179\000\000\004\198\002=\000\000\005@\000\000\007t\0056\007w\006\186\006\187\000\000\000\000\000\000\006K\000\000\000\000\000\174\000\000\000\000\000\000\000\000\004M\005\151\005\127\001\214\000\000\000\000\000\000\005A\000\000\005\128\000\000\005\129\002\155\000\129\005W\006\235\005O\000\231\005_\000\000\000\000\000\000\000\235\000\000\000\000\000\000\005w\004\207\001\232\004{\000\000\001\207\004\197\000\000\001\208\000\000\0058\002\174\005N\000\000\004\181\002>\001S\000\000\000\000\004\208\004\182\002?\000\000\000\000\004\209\000\000\000\000\000h\004\210\000\000\000\000\000\000\000\000\006J\004\211\0056\000\000\000h\005W\006\188\000\000\005O\005_\000\000\000\000\005:\007s\000\000\002\232\002;\005w\000\000\000\130\004\179\000\000\004\198\004\195\000\225\000\000\000\000\005?\000\000\000\000\000\233\000\240\005O\000\000\004\196\000\000\000\000\007t\000\174\007w\006\186\006\187\000\000\004M\005\151\005\127\001\187\000\000\005@\000\000\002;\006v\002\176\0058\002<\000\000\005W\000\000\002=\000i\005_\000\000\000\000\000\000\000\239\000\000\000\000\000\174\005w\000i\001\190\000\000\004{\005A\000\000\005\128\000\000\005\129\001\237\000\000\005W\005N\002\178\004\181\005_\000\000\000\000\000\000\005:\004\182\000\000\000\000\005w\004\207\000\000\000\000\000\000\000\145\002\171\004\195\002\216\000\000\000\000\005?\0056\000\000\000\240\000\240\005O\002\172\004\196\004\208\005\158\000\000\000\000\002\174\004\209\000\000\006\188\002>\004\210\000\000\000\000\000\000\005@\002?\004\211\007\154\000\174\001\179\001\180\0047\001\184\000l\000\000\000h\002\219\007s\000\000\007\249\000\000\000\000\000\000\000l\000\000\002\181\b\003\000\240\002;\005A\000\241\005\128\004\179\005\159\004\198\0058\005W\000\000\000\000\000\000\005_\007t\000\183\007w\006\186\006\187\000h\000\000\005w\004\207\000\174\001\186\000\000\006\222\000\000\004M\005\151\005\127\000\000\000\000\001\022\000\000\000\242\000\000\000\000\000\000\000\000\004\208\002\183\002\176\005:\000\000\004\209\000\000\000\000\000\000\004\210\006\223\006\186\006\187\000i\004\195\004\211\002\184\004{\005?\000\000\000\134\003\151\000\240\005O\001\017\004\196\005N\005\160\004\181\000\000\000\000\000\137\002\178\000\129\004\182\000\000\000y\000\222\002\249\005@\000h\000\000\000\000\000\244\000i\000h\000\184\001\023\002\171\0056\002\223\001\019\007\161\006\222\000\000\006\188\000\240\000\000\000\246\002\172\000\000\000\000\005\251\002;\005A\000\000\005\128\004\179\005\159\004\198\000\000\005W\000\000\000\000\000\000\005_\000\000\006\223\006\186\006\187\000\000\000\000\000h\005w\004\207\000\174\000\000\000l\000\000\006\188\004M\005\189\005\127\002;\000\000\002\181\000\000\004\179\000\130\004\198\0058\007\252\004\208\000\225\007\253\000i\000\000\004\209\000\000\000\226\000i\004\210\001S\002\226\000\000\000\174\000\000\004\211\000l\004{\004M\005\189\005\127\000\000\000\000\000\000\000h\000\000\005N\000\000\004\181\000\000\000\000\000\000\000\000\005:\004\182\006\222\002\183\000\000\000\000\001\187\000\000\000\239\006\222\000\000\004\195\000i\000\000\004{\005?\0056\000\000\002\184\000\240\005O\006\188\004\196\005N\005\178\004\181\006\223\006\186\006\187\000\000\001\190\004\182\000\000\006\223\006\186\006\187\005@\000\000\001\237\005\191\000\000\007\164\000\184\000\000\000l\000h\0056\000\000\000\000\000l\000\145\000\000\000\000\000\000\000\000\000h\000i\000\000\006\004\000\000\002;\005A\000\000\005\128\004\179\005\159\004\198\0058\005W\005\193\000\129\000\000\005_\0023\000\231\005\211\000\000\006\233\000\000\000\235\005w\004\207\000\174\000\000\000\000\000\000\000l\004M\005U\005\127\000\000\000\240\000\174\000h\000\241\000\000\000\000\0058\000\000\004\208\000\000\000\000\005:\000\000\004\209\006\188\000\000\000\000\004\210\000\000\000i\000\000\006\188\004\195\004\211\000\000\004{\005?\000\000\000\000\000i\000\240\005O\000h\004\196\005N\000\242\004\181\000\000\000\000\000l\000\000\005:\004\182\000\184\000\130\000\000\000\000\005@\000\184\000\225\000\000\001\015\004\195\006\248\000\000\000\233\005?\0056\000\000\006\026\000\240\005O\000\000\004\196\006*\000\000\000\000\000i\000\000\000\134\004\023\000\000\005A\000\000\005\128\000\174\005\192\005@\000\000\005W\000\137\000\000\000\000\005_\000\000\000y\000\000\000\000\000\000\000\239\000\000\005w\004\207\000l\000\000\000h\000\000\000i\000\000\000\000\000\000\002;\005A\000l\005\128\004\179\005\192\004\198\0058\005W\004\208\000\000\000\000\005_\000\000\004\209\000\000\000\000\000\000\004\210\000\129\005w\004\207\000\174\002X\004\211\000\000\002_\004M\002A\005M\000\000\000\000\000\000\000\000\000\145\000\000\006\246\000\000\000\000\004\208\000l\000\000\005:\006\244\004\209\001\203\000\000\000\000\004\210\000\000\000\000\000\129\001\213\004\195\004\211\000\231\004{\005?\000\000\000i\000\232\000\240\005O\000h\004\196\005N\001\206\004\181\000\000\000\000\000l\000\240\000\000\004\182\000\241\002;\000\000\000\000\005@\004\179\000\000\004\198\002]\000\000\000\130\000\000\000\000\002Z\0056\000\000\002\254\000\000\002\153\002[\000\000\000\000\000\000\000\174\000\000\002\003\000\000\000\000\004M\005A\005M\005\128\000\242\005\129\000\000\006?\005W\000\129\000\000\005\197\005_\000\231\000\130\000\000\000\000\000\000\000\232\000\225\005w\004\207\002\005\000\000\003\001\000\233\000i\002e\002\169\004{\001S\000l\000\000\001\017\000\000\000\000\000\174\0058\005N\004\208\004\181\000\000\000\134\004\028\004\209\000\000\004\182\000\000\004\210\000\000\000\000\006\222\000\244\000\137\004\211\000h\001\025\000\000\000y\000\239\001\019\0056\000\000\000\000\000\143\001\214\000\000\000\246\000\000\000\000\000\000\000\000\005:\000\000\000\130\006\223\006\186\006\187\000\000\000\225\000\000\000\000\006O\004\195\000\000\000\233\005\197\005?\000\000\000\000\001\215\000\240\005O\001\207\004\196\000\000\001\208\000\000\006\222\000\000\000l\000\000\000\000\000h\001S\002;\000\000\001\203\005\186\004\179\000\240\004\198\0058\002f\001\213\000\000\000\000\000\000\000\000\000\239\000i\004\184\006\223\006\186\006\187\000\000\003\024\000\174\001\206\000\000\000\000\000\000\004M\005A\005M\005R\005\188\000\000\000\000\000\000\005W\000\000\000\240\000\000\005_\000\241\000\000\005:\003\004\000\000\000\000\000\000\005w\004\207\006\188\000\000\000\129\000\000\004\195\000\000\000\231\004{\005?\000\000\000\000\000\235\000\240\005O\000i\004\196\005N\004\208\004\181\002l\000\134\000\000\004\209\000\242\004\182\000\000\004\210\000\000\000\000\005\186\000\000\000\137\004\211\000\000\000\000\000\000\000y\002m\000\000\0056\000l\000\000\003\014\000\000\000\000\000\129\002o\006\188\000\240\000\222\002\248\000\241\002p\000\000\005A\000\000\005R\005\188\000\000\000\000\006Q\005W\002;\000\000\005\197\005_\004\179\000\130\004\198\006\222\000\000\000\248\000\225\005w\004\207\001\214\000\000\000\000\000\233\000\000\000\000\000\000\001\001\000\242\000\174\000\000\000\000\000\000\000l\004M\0058\005M\004\208\006\223\006\186\006\187\000\000\004\209\000\000\000\000\001\220\004\210\000\000\001\207\000\000\000\000\001\208\004\211\006\222\000\000\000\130\000\000\000\239\006\222\001S\000\225\000\000\000\000\004{\000\000\000\000\000\226\000\000\007\003\000\000\005:\000\000\005N\000\000\004\181\004\193\000\248\006\223\006\186\006\187\004\182\004\195\006\223\006\186\006\187\005?\000\000\001\003\000\000\000\240\005O\000\000\004\196\000\174\000\000\0056\000\000\002;\004M\000\000\000\239\004\179\000\000\004\198\000\000\000\000\005\186\000\000\000\000\000\000\000\000\000\000\007\221\000\000\000\000\007\018\007\213\006\188\000\000\000\174\005\197\000\000\000\000\005\012\004M\005U\005\127\004{\000\000\000\000\000\000\005A\000\000\005R\005\188\000\000\001\186\000\000\005W\000\000\000\240\000\000\005_\000\241\000\000\000\129\0058\000\000\000\000\000\231\005w\004\207\000\000\004{\000\237\000\000\006\188\000\000\000\000\000\000\000\000\006\188\005N\000\000\004\181\000\000\000\000\000\000\000\000\004\208\004\182\000\000\000\000\002v\004\209\000\242\000\000\000\000\004\210\000\000\000\000\005:\000\000\000\240\004\211\0056\000\241\002;\000\000\000\000\000\000\004\179\004\195\004\198\000\000\000\000\005?\000\000\000\000\000\000\000\240\005O\000\129\004\196\001\017\000\000\000\222\002\247\006\222\000\174\000\130\000\000\000\000\000\000\004M\000\225\005M\005\186\000\242\000\000\000\000\000\233\000\000\000\244\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001\019\006\223\006\186\006\187\000\000\0058\000\000\000\246\000\000\007\029\000\000\005A\004{\005R\005\188\000\000\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\239\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\005O\000\000\000\130\000\000\000\000\000\000\005:\000\225\000\000\000\000\0056\000\000\002;\000\226\007*\004\208\004\179\004\195\004\198\007(\004\209\005?\000\000\000\000\004\210\000\240\005O\b\017\004\196\000\000\004\211\007\227\000\000\006\222\000\174\005\197\000\000\000\000\000\000\004M\005U\005\127\005@\006x\000\000\000\000\006\188\000\239\005W\000\000\000\000\000\000\005_\000\000\000\000\000\000\000\000\006\223\006\186\006\187\005w\0058\000\000\000\174\000\000\000\000\000\000\005A\004{\005\128\000\000\005\129\000\000\000\240\005W\000\000\000\241\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005:\000\000\000\000\000\000\0056\000\000\000\000\000\000\000\000\004\208\000\000\004\195\000\242\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\222\000\224\002;\000\000\000\000\005\206\004\179\000\000\004\198\000\240\000\000\005\186\000\241\001\203\000\000\006\188\000\243\000\000\000\000\000\000\001\213\000\000\000\000\000\000\000\174\000\000\000\000\000\000\006\222\004M\0058\005\127\000\000\000\000\001\206\000\244\005A\000\000\005R\005\188\002a\000\000\000\000\005W\000\242\000\000\000\000\005_\007&\000\000\000\246\000\000\006\223\006\186\006\187\005w\004\207\000\000\004{\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\005N\000\000\004\181\000\000\000\000\000\226\000\000\004\208\004\182\004\195\000\000\006\222\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\0056\000\000\002;\000\000\000\000\000\000\004\179\000\000\004\198\000\000\000\000\005@\006\223\006\186\006\187\000\000\000\239\000\129\000\000\000\000\005\131\000\222\002\240\000\000\000\174\000\000\000\000\000\000\006\222\004M\000\000\005M\000\000\000\000\000\000\000\000\005A\000\000\005\128\000\000\005\129\006\188\002;\005W\000\000\001\214\002<\005_\007D\000\000\002=\0058\006\223\006\186\006\187\005w\004\207\000\000\004{\000\129\000\000\000\000\000\000\000\222\002,\000\000\000\000\005N\000\129\004\181\004_\000\000\000\231\001\207\004\208\004\182\001\208\000\235\000\000\004\209\000\000\000\000\000\130\004\210\001S\000\000\005:\000\225\000\000\004\211\0056\006\188\002;\000\226\000\000\000\000\004\179\004\195\004\198\000\240\000\000\005?\000\241\000\000\000\000\000\240\005O\002\174\004\196\000\000\005L\002>\000\000\000\000\000\174\000\000\000\000\002?\000\000\004M\000\000\005M\005\208\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\006\188\000\000\000\130\000\242\000\226\000\000\000\000\000\225\000\000\001\015\0058\000\000\000\000\000\233\000\000\006\222\005A\004{\005\128\000\000\005\210\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\007B\004\182\005w\004\207\000\000\000\239\006\223\006\186\006\187\000\000\000\000\000\000\005:\000\000\000\239\000\000\0056\002\176\000\000\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\002;\003\015\000\000\000\232\004\179\000\000\004\198\000\240\002\178\005P\000\241\007@\000\000\000\000\000\000\000\000\000\000\000\000\005V\000\000\000\000\000\000\000\174\000\000\002\171\000\000\002\180\004M\0058\005M\000\000\000\000\000\240\000\000\005A\002\172\005R\005S\000\000\000\000\000\000\005W\000\242\000\000\000\000\005_\006\188\000\000\000\000\000\240\000\000\007Q\000\241\005w\004\207\000\000\004{\000\000\000\240\000\130\000\000\000\241\000\000\005:\000\225\005N\000\000\004\181\000\000\000\000\000\233\002\181\004\208\004\182\004\195\000\000\006\222\004\209\005?\000\000\000\000\004\210\000\240\005O\000\242\004\196\001J\004\211\0056\000\000\002;\000\000\000\000\000\242\004\179\000\000\004\198\000\000\000\000\005P\006\223\006\186\006\187\000\000\000\239\000\129\000\000\000\000\000\000\000\222\0025\000\000\000\174\000\000\002\183\000\000\000\000\004M\000\000\005M\000\000\000\000\001\017\000\000\005A\000\000\005R\005S\000\000\002\184\002;\005W\000\000\000\000\002<\005_\000\000\000\000\002=\0058\006\222\000\244\000\000\005w\004\207\001\025\004{\000\129\000\000\001\019\000\000\000\222\0028\000\000\000\000\005N\000\246\004\181\000\000\000\000\000\000\000\000\004\208\004\182\006\223\006\186\006\187\004\209\000\000\007O\000\130\004\210\000\000\000\000\005:\000\225\000\000\004\211\0056\006\188\002;\000\226\000\000\000\000\004\179\004\195\004\198\000\240\000\000\005?\000\241\000\000\000\000\000\240\005O\002\174\004\196\000\000\000\000\002>\000\000\000\000\000\174\000\000\000\000\002?\000\000\004M\000\000\005M\005P\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\000\000\000\000\000\000\000\242\000\226\000\000\000\000\000\000\000\000\000\000\0058\000\000\000\000\002\218\000\000\000\000\005A\004{\005R\005S\000\000\000\000\000\000\005W\006\188\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\005:\000\000\000\000\000\000\0056\002\176\000\248\000\174\000\000\004\208\000\000\004\195\004M\000\000\004\209\005?\000\000\001\005\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\002;\005\162\000\000\000\232\004\179\000\000\004\198\000\240\002\178\005\155\000\241\007\139\000\000\000\000\004{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\001\186\002\171\000\000\002\216\004M\0058\005M\000\000\000\000\000\240\000\000\005A\002\172\005R\005\157\000\000\000\000\000\000\005W\000\242\000\000\000\000\005_\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005w\004\207\000\000\004{\000\000\000\000\000\130\000\000\000\000\002\219\005:\000\225\005N\000\000\004\181\000\000\000\000\000\233\002\181\004\208\004\182\004\195\007\144\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\242\004\196\000\000\004\211\0056\000\000\002;\005\154\000\000\000\000\004\179\000\000\004\198\000\000\000\000\005\155\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\002\183\000\000\000\000\004M\000\000\005M\000\000\000\000\000\000\000\000\005A\000\000\005R\005\157\000\000\002\184\000\000\005W\000\000\000\000\000\000\005_\000\000\000\000\000\129\0058\000\000\000\000\000\231\005w\004\207\000\000\004{\000\237\000\000\000\000\000\000\000\000\005O\000\000\000\000\005N\000\129\004\181\000\000\000\000\000\231\000\000\004\208\004\182\000\000\000\232\000\000\004\209\000\000\000\000\000\000\004\210\000\000\000\000\005:\000\000\000\000\004\211\0056\000\000\002;\000\000\000\000\000\000\004\179\004\195\004\198\000\240\000\000\005?\000\241\000\000\000\000\000\240\005O\006z\004\196\000\000\000\000\000\000\005W\005\174\000\174\000\130\005_\000\000\000\000\004M\000\225\005M\005\175\000\000\005w\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\242\000\174\000\000\000\000\000\225\000\000\000\000\0058\000\000\000\000\000\233\000\000\000\000\005A\004{\005R\005\177\000\000\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\239\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005:\000\000\000\239\000\000\0056\000\000\000\248\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\001\007\004\210\000\240\005O\000\000\004\196\000\000\004\211\000\000\000\000\002;\005\172\005\185\001\203\004\179\000\000\004\198\000\000\000\000\005\155\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\001\206\000\000\000\000\004M\0058\005M\000\000\000\000\000\000\000\000\005A\000\129\005R\005\157\000\000\002X\000\240\005W\002_\000\241\000\000\005_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005w\004\207\000\000\004{\000\000\000\240\000\000\000\000\000\241\000\000\005:\000\000\005N\000\000\004\181\000\000\000\000\000\000\000\000\004\208\004\182\004\195\000\242\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\0056\000\000\002;\000\000\000\000\000\242\004\179\000\000\004\198\000\000\000\000\005\186\000\130\000\000\000\000\002Z\000\243\000\000\002\254\007\217\000\000\002[\000\000\000\129\000\174\005\190\000\000\000\222\002L\004M\000\000\005M\000\000\000\000\000\000\000\244\005A\001\214\005R\005\188\002c\000\000\000\000\005W\000\000\000\000\000\000\005_\000\000\000\000\000\246\0058\000\000\000\248\003\001\005w\004\207\002e\004{\000\000\000\000\000\000\004i\000\000\001\t\001\207\000\000\005N\001\208\004\181\000\000\000\000\000\000\000\000\004\208\004\182\001S\000\000\000\000\004\209\000\000\000\000\000\000\004\210\000\000\000\000\005:\000\000\000\130\004\211\0056\000\000\002;\000\225\000\000\000\000\004\179\004\195\004\198\000\226\000\000\005?\000\000\000\000\000\000\000\240\005O\000\129\004\196\007\229\000\000\000\231\000\000\000\000\000\174\000\000\000\237\000\000\000\000\004M\000\000\005M\005\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\240\0058\000\000\002f\000\000\000\000\000\000\005A\004{\005R\005\188\000\000\000\000\000\000\005W\000\000\003\002\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\003\004\000\000\0056\000\000\002;\000\233\000\000\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\007\232\004\211\000\231\000\000\002l\000\174\000\000\000\237\000\000\000\000\004M\000\000\005M\007\218\000\000\000\000\000\000\000\240\000\239\000\000\000\241\000\000\002m\000\000\000\000\000\000\000\000\003\014\000\000\000\000\000\000\002o\0058\000\000\000\000\000\000\000\000\002p\005A\004{\005R\007\220\000\000\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\000\000\242\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\000\000\000\000\0056\000\000\002;\000\233\000\000\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\000\000\000\174\000\000\000\232\000\000\000\000\004M\000\240\006f\007\218\000\241\000\000\000\000\000\000\000\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\0058\000\000\000\000\000\000\000\000\000\000\005A\004{\005R\007\220\000\000\000\000\000\000\005W\000\242\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\000\000\000\000\0056\000\000\002;\000\233\000\243\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\000\000\000\000\000\244\000\174\000\000\000\000\000\000\004\200\004M\000\240\006f\007\218\000\241\000\000\000\000\000\000\000\239\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0058\000\000\000\000\000\000\000\000\000\000\005A\004{\005R\007\220\000\000\000\000\000\000\005W\000\242\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005:\006g\000\000\000\000\0056\000\000\002;\000\000\000\243\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\000\000\000\000\000\244\000\174\000\000\000\000\000\000\004\202\004M\000\240\006f\005@\000\241\000\000\000\000\000\000\000\000\000\246\000\000\000\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\0058\000\000\000\000\000\222\002R\000\129\005A\004{\006j\004\179\000\000\004\198\000\000\005W\000\242\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\174\000\000\000\000\000\000\000\000\005\225\000\000\000\000\005:\006i\000\000\000\000\0056\000\000\000\000\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\006\002\004\196\000\000\004\211\001\203\006\003\000\248\000\000\000\130\000\000\000\000\001\213\000\000\000\225\006\t\005@\004\181\001\011\000\000\000\226\000\000\000\000\004\182\000\000\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\0058\000\000\000\000\006\n\000\000\000\000\005A\006\012\006j\000\000\000\000\000\000\000\129\005W\000\000\000\000\000\231\005_\000\000\000\239\000\000\000\235\000\000\000\000\000\000\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\005:\006l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\001\203\000\000\005@\000\000\000\000\000\000\000\000\001\213\000\130\000\174\000\129\000\000\000\000\000\225\002X\001\015\000\000\002_\000\000\000\233\000\000\001\206\000\000\001\214\000\000\000\000\000\000\005A\000\000\006j\000\000\004\195\000\174\000\240\005W\000\000\000\241\000\000\005_\000\240\006\r\000\000\004\196\000\000\000\000\000\000\005w\004\207\005f\000\000\000\000\001\207\000\130\000\239\001\208\000\000\005@\000\225\000\000\001\015\000\000\000\000\001S\000\233\000\000\004\208\000\000\000\000\000\242\000\000\004\209\000\000\000\000\000\000\004\210\000\130\000\000\000\174\002Z\003\015\004\211\001H\000\000\000\000\002[\000\000\000\129\000\000\006\014\000\000\002X\000\000\006\022\002_\000\000\000\000\000\000\000\239\000\000\000\000\006(\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\000\000\000\000\000\000\000\000\000\000\002d\000\000\000\000\000\000\004\208\002e\000\000\001\214\001F\004\209\001H\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\004\211\000\000\000\240\000\000\000\000\000\241\000\129\000\000\000\000\000\000\000\231\000\000\000\000\005n\001\203\000\232\001\207\000\130\000\000\001\208\002Z\001\213\000\000\000\000\000\000\000\000\002[\001S\000\000\000\129\001J\000\000\000\000\002X\000\000\001\206\002_\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\174\000\000\000\000\002;\001P\000\000\002d\004\179\000\000\004\198\000\000\002e\001S\000\000\000\000\001\017\000\000\000\000\000\240\000\000\000\130\002f\000\000\001J\000\000\000\225\000\000\000\174\000\000\000\000\000\242\000\233\005/\006L\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\130\002g\002\162\002Z\000\000\001P\000\246\000\000\000\000\002[\000\000\000\000\000\000\001S\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\002\174\002j\004\181\002k\000\000\000\000\000\000\000\000\004\182\000\000\000\244\001S\000\000\002l\001\025\002d\000\000\001\214\001\019\000\000\002e\000\000\000\000\0056\000\000\000\246\000\240\000\000\000\000\002f\001\203\002m\000\000\000\000\000\000\002;\002n\001\213\000\000\004\179\002o\004\198\005\238\000\000\000\000\001\207\002p\000\000\001\208\000\000\002\145\001\206\002g\002h\000\000\000\000\001S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005/\005\148\000\000\002;\000\000\000\000\000\000\004\179\000\000\004\198\0058\000\000\000\000\002j\000\000\002k\000\240\000\000\000\000\000\241\000\000\000\000\000\000\001S\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\005/\005\138\000\000\000\000\002\174\000\000\004\181\000\240\000\000\000\000\002f\002m\004\182\005:\000\000\000\000\002n\000\000\000\000\000\242\002o\000\000\000\000\000\000\004\195\000\000\002p\0056\005?\000\000\002\145\000\000\000\240\002g\004\186\004\196\002\174\000\000\004\181\000\000\000\000\000\000\000\000\000\000\004\182\000\000\000\000\000\000\000\000\005@\000\000\000\000\000\000\000\000\000\000\000\000\001\214\000\000\002j\0056\002k\000\000\000\000\000\000\000\000\000\000\000\000\002\246\001S\002;\002l\000\000\000\000\004\179\005A\004\198\000\000\000\000\0058\000\129\000\000\006\029\000\000\002X\001\207\000\000\002_\001\208\002m\000\000\000\000\000\000\000\000\002n\004\207\001S\000\000\002o\005/\0050\000\000\000\174\000\000\002p\000\000\000\000\000\000\002\145\000\000\000\000\0058\000\000\004\208\005:\000\000\000\129\000\000\004\209\000\000\000\222\002U\004\210\000\129\000\000\004\195\000\000\000\231\004\211\005?\000\000\000\000\000\232\000\240\000\000\002\174\004\196\004\181\000\000\000\000\000\000\000\000\000\000\004\182\000\000\000\130\005:\000\000\002Z\000\000\005@\000\000\000\000\000\000\002[\000\000\000\000\004\195\0056\000\000\000\000\005?\000\000\000\000\000\000\000\240\000\000\000\000\004\196\000\129\000\000\000\000\000\000\002X\000\000\005A\002_\000\000\000\000\000\000\000\000\000\130\005@\000\000\000\000\002d\000\225\000\000\000\130\000\000\002e\000\174\000\226\000\225\000\000\004\207\000\000\000\000\000\000\000\233\000\000\000\000\002;\000\000\000\000\000\000\004\179\005A\004\198\0058\000\000\000\000\000\000\004\208\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\129\004\210\000\000\000\000\000\231\000\239\004\207\004\211\000\000\000\235\005/\005>\000\239\000\130\000\000\000\000\002Z\000\000\000\000\000\000\000\000\000\000\002[\005:\004\208\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\004\210\004\195\000\000\000\129\000\000\005?\004\211\000\222\004\139\000\240\000\000\000\000\004\196\002\174\000\000\004\181\000\000\000\000\000\000\000\240\002d\004\182\002f\000\000\000\000\002e\005@\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\0056\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\002g\005<\000\000\000\000\000\000\000\000\005A\000\000\000\000\000\000\000\240\003\"\000\000\000\241\000\000\000\000\000\000\000\240\002;\000\000\000\241\000\000\004\179\000\130\004\198\002j\004\207\002k\000\225\000\000\000\000\000\000\000\239\000\000\000\226\001S\000\129\002l\000\000\000\000\002X\000\000\0058\002_\004\208\000\242\000\000\005/\005\150\004\209\000\000\000\000\000\242\004\210\000\000\002m\000\000\000\000\000\174\004\211\002n\000\000\000\000\000\240\002o\000\000\002f\000\000\000\239\000\000\002p\000\000\000\000\000\000\002\145\000\000\000\000\005:\000\000\000\000\000\000\000\000\000\000\002\174\000\000\004\181\000\000\000\000\004\195\002g\005Y\004\182\005?\000\000\000\000\000\000\000\240\000\000\000\000\004\196\000\248\000\130\000\000\000\000\002Z\000\000\0056\000\000\000\129\000\000\002[\001\r\000\231\005@\002j\000\240\002k\000\232\000\241\000\000\000\000\000\000\000\000\000\000\001S\000\129\002l\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\005A\000\000\000\000\002d\000\000\001\024\002m\000\000\002e\000\174\000\000\002n\000\242\000\240\000\000\002o\000\241\000\000\000\000\0058\004\207\002p\000\000\000\000\000\000\002\145\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\130\000\000\000\235\004\208\000\000\000\225\001\017\000\000\004\209\000\000\000\000\000\233\004\210\000\242\000\000\000\174\000\000\000\130\004\211\005:\000\000\000\000\000\225\000\000\001\015\000\244\000\000\000\000\000\233\001\025\004\195\000\000\000\000\001\019\005?\000\000\000\000\000\000\000\240\000\000\000\246\004\196\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005@\000\240\000\000\000\130\002f\000\000\000\000\000\239\000\225\000\129\001\015\000\000\000\000\002X\000\233\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005A\000\000\002g\006\016\000\000\000\000\000\174\000\000\000\000\000\000\000\129\000\000\000\000\000\000\002X\000\000\000\000\002_\000\000\000\000\004\207\000\000\000\000\000\239\000\000\000\000\000\000\002j\000\000\002k\000\000\000\000\000\174\000\000\000\000\000\000\000\000\001S\004\208\002l\000\129\000\000\000\000\004\209\000\222\004\170\000\000\004\210\000\240\000\130\000\000\000\241\002Z\004\211\000\000\000\000\000\000\002m\002[\000\000\000\000\000\000\002n\000\000\000\000\000\240\002o\000\000\000\241\000\000\000\000\000\000\002p\000\000\000\000\000\130\002\145\000\000\002Z\000\000\000\000\000\000\000\000\000\242\002[\000\000\000\000\000\000\000\000\002\156\000\000\000\000\000\000\002\011\002e\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\000\000\000\000\000\000\000\000\002\147\000\226\000\129\002\r\000\000\002e\002X\000\000\000\000\002_\000\000\001S\000\000\000\000\001\017\000\000\000\248\000\000\000\000\002\020\000\000\000\000\000\000\000\000\000\174\000\129\000\242\001\027\000\000\000\222\004\173\000\000\000\000\000\244\000\000\000\239\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\002\022\000\000\000\000\000\000\000\246\000\000\000\000\000\000\001S\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\002f\000\000\000\130\000\000\000\000\002Z\000\000\000\000\000\000\000\244\000\000\002[\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\240\000\246\000\130\002f\000\000\000\000\000\129\000\225\000\000\000\000\000\231\000\000\000\000\000\226\000\000\000\235\000\000\000\000\000\000\002\160\000\000\000\000\000\129\000\000\002e\002j\000\231\002k\000\174\000\000\000\240\000\235\000\000\000\241\000\000\001S\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\000\000\000\239\000\000\000\000\000\000\002j\000\000\002k\000\000\002m\000\000\000\000\000\000\000\000\002n\001S\000\000\002l\002o\000\242\000\000\000\000\000\000\000\000\002p\000\130\000\000\000\000\002\145\000\000\000\225\000\000\001\015\000\129\000\000\002m\000\233\000\231\000\000\000\000\002n\000\130\000\235\000\000\002o\000\000\000\225\000\000\001\015\000\000\002p\000\000\000\233\000\129\002\145\000\174\000\000\000\231\000\000\000\000\000\000\000\240\000\235\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\129\000\000\000\000\000\174\004\179\000\000\004\198\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\239\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\129\000\000\000\000\000\130\000\231\000\000\000\000\000\000\000\225\000\235\001\015\000\000\000\000\000\000\000\233\000\000\000\000\002j\000\000\002k\000\000\000\000\000\174\000\130\000\242\000\000\000\000\001S\000\225\002l\001\015\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\004\181\000\000\000\000\002m\000\239\000\000\004\182\000\000\002n\000\000\000\000\000\000\002o\000\000\000\240\000\000\000\000\000\241\002p\000\000\000\000\000\130\002\145\000\000\000\239\000\000\000\225\000\000\001\015\000\000\000\240\000\000\000\233\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\011\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\129\000\000\000\000\002\011\000\231\000\000\000\000\000\000\000\000\000\232\000\242\000\239\003\021\004\203\000\000\000\000\001H\000\000\000\000\000\000\001S\000\000\000\000\001\017\000\000\000\000\002;\000\000\003\027\000\000\002<\000\000\000\240\000\000\002=\000\241\001S\000\000\000\000\001\017\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\240\000\000\000\000\000\241\000\000\000\246\000\244\000\000\002\011\000\000\001\025\004\195\000\000\000\130\001\019\000\242\000\000\000\000\000\225\000\240\000\000\000\246\004\196\000\000\000\233\000\000\000\000\000\000\002\011\000\000\000\000\000\000\000\000\003\031\000\000\000\242\004\205\000\000\000\000\002\174\000\000\001S\000\240\002>\001\017\000\241\002;\000\000\000\000\002?\002<\002;\000\000\004\137\002=\002<\000\000\000\000\000\239\002=\000\000\001S\000\000\000\244\001\017\000\000\000\000\001\025\000\000\000\000\004\158\001\019\001P\000\000\000\000\000\000\002\175\000\242\000\246\000\000\001S\004\207\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\129\000\000\000\000\004\160\000\231\000\000\000\246\004\208\000\000\000\235\000\000\001S\004\209\000\000\001\017\000\000\004\210\000\000\000\000\002\174\000\000\002\176\004\211\002>\002\174\000\000\000\000\000\000\002>\002?\000\000\002;\000\000\000\244\002?\002<\000\000\001\025\000\000\002=\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\240\000\000\002\178\000\241\000\000\000\000\000\000\002\175\000\000\000\000\000\000\000\000\002\175\000\000\000\000\000\000\000\130\000\000\002\171\002\241\002\216\000\225\000\000\001\015\002;\000\000\000\240\000\233\002<\002\172\000\000\000\000\002=\000\000\000\000\000\242\000\000\000\000\000\000\000\000\001\020\000\000\000\000\000\000\002\176\000\000\000\000\002\174\000\000\002\176\002\227\002>\000\000\000\000\000\000\000\000\002\219\002?\000\000\000\000\000\000\000\239\000\000\000\000\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\248\002\175\000\000\000\000\000\000\000\000\002\174\002\171\002\238\002\216\002>\001\029\002\171\002\235\002\216\000\240\002?\000\000\002\172\000\000\000\240\000\000\000\000\002\172\000\000\002\183\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\176\002\227\002\184\000\000\000\000\002\175\002\227\002\219\000\000\000\000\000\000\002;\002\219\000\000\000\000\002<\002\181\000\000\000\000\002=\000\000\002\181\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\000\000\000\002;\000\000\000\000\000\000\002<\000\000\002\176\000\000\002=\000\000\002\171\002\233\002\216\000\000\000\000\001\024\000\129\000\000\000\240\000\000\000\231\002\172\000\242\002\183\000\000\000\235\000\000\000\000\002\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\002\184\000\000\002\174\000\000\002\227\002\184\002>\000\000\000\000\000\000\002\219\000\000\002?\001\017\002\171\002\214\002\216\000\129\000\000\002\181\000\000\000\231\000\240\000\000\000\000\002\172\000\235\002\174\000\000\000\129\000\000\002>\000\244\000\231\000\000\000\000\001\025\002?\000\232\002\175\001\019\000\000\000\000\000\130\000\000\000\000\002\227\000\246\000\225\000\000\001\015\000\000\002\219\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\183\000\000\002\175\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\002\176\002\184\000\000\000\235\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\239\001\015\000\000\000\129\000\000\000\233\000\130\000\231\000\000\000\000\000\000\000\225\000\235\002\176\000\000\000\000\002\183\000\233\002\178\000\000\000\000\000\000\000\000\000\129\000\000\000\000\002\017\000\231\000\000\000\000\000\000\002\184\000\235\000\000\002\171\004\245\002\216\000\000\000\000\000\239\000\000\000\000\000\240\002\178\000\129\002\172\000\000\000\130\000\231\000\000\000\000\000\239\000\225\000\235\001\015\000\000\000\000\000\000\000\233\002\171\007\223\002\216\000\000\000\000\000\000\000\000\002\227\000\240\000\130\000\000\002\172\002t\002\219\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\002\181\000\000\000\240\000\000\000\000\000\241\000\000\000\130\000\000\000\000\002\227\000\239\000\225\000\000\001\015\000\000\002\219\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\000\000\000\130\000\000\001J\000\000\000\239\000\225\000\000\001\015\004R\000\242\000\000\000\233\000\000\000\240\000\000\002\183\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\240\000\000\000\129\000\241\000\000\002\184\000\231\000\000\000\000\000\000\000\000\000\235\000\000\001\017\000\000\002\183\002\231\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\002\184\000\000\000\244\000\235\000\000\000\242\001\025\000\000\000\000\000\000\001\019\000\240\000\000\000\000\000\241\000\000\000\129\000\246\000\000\000\000\000\231\000\000\001\017\000\000\000\000\000\235\000\000\004c\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\130\000\000\001\024\000\000\000\244\000\225\000\000\001\015\001\025\000\242\004o\000\233\001\019\000\000\000\000\000\240\001E\000\000\000\241\000\246\000\000\000\000\000\130\002\231\004\215\000\000\000\000\000\225\000\000\001\015\000\242\004w\000\000\000\233\000\000\000\000\000\240\000\000\001\017\000\241\000\000\000\000\000\000\002\231\000\130\000\239\000\000\000\000\000\000\000\225\000\242\001\015\000\000\000\000\000\000\000\233\000\000\000\244\000\000\001\017\000\000\001\025\000\000\000\000\002\231\001\019\000\000\000\239\005\016\000\000\000\000\000\242\000\246\000\000\000\000\000\000\000\129\000\000\000\244\001\017\000\231\000\000\001\025\000\000\000\000\000\235\001\019\000\000\000\000\000\239\000\000\000\000\000\129\000\246\000\000\000\000\000\231\000\000\000\244\000\000\001\017\000\235\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\240\000\129\000\000\000\241\000\000\000\231\000\246\000\000\000\000\000\000\000\235\000\000\000\000\000\130\000\000\000\000\000\000\004~\000\225\000\000\001\015\000\000\000\240\000\000\000\233\000\241\000\000\000\000\001\024\000\130\000\000\000\000\000\000\000\000\000\225\000\242\001\015\005\018\000\000\000\000\000\233\000\000\000\129\000\000\000\240\000\000\000\231\000\241\000\000\000\000\002\231\000\235\000\000\005\020\000\000\000\000\000\000\000\242\000\239\000\000\000\000\000\000\000\000\000\129\001\017\000\000\000\130\000\222\004\176\000\000\000\000\000\225\001\024\001\015\000\239\000\000\000\000\000\233\000\000\000\242\000\000\000\000\000\000\000\244\000\000\000\000\001\017\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\130\001\017\001\025\000\000\000\239\000\225\001\019\001\015\000\000\000\000\000\000\000\233\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\130\000\000\000\000\001\025\000\000\000\225\000\000\001\019\000\129\000\000\000\000\000\226\000\231\000\240\000\246\000\000\000\241\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\001\024\000\235\000\000\000\000\005]\000\000\000\000\000\242\000\000\000\240\000\000\000\000\000\241\000\000\002;\000\000\000\130\000\000\002<\000\000\001\017\000\225\002=\001\015\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\002\231\000\000\000\244\000\000\000\000\000\000\001\025\000\242\005j\000\000\001\019\000\000\000\000\000\240\000\000\000\000\000\241\000\246\000\244\000\000\000\130\000\000\001\025\000\000\000\239\000\225\001\019\001\015\000\000\000\000\000\000\000\233\000\000\000\246\000\240\000\000\001\017\000\241\000\000\000\000\000\000\002\231\002\174\000\000\000\000\000\000\002>\000\000\000\242\000\129\000\000\000\000\002?\000\231\000\000\000\244\000\000\000\000\000\235\001\025\000\000\000\000\000\129\001\019\000\000\000\239\000\231\000\000\000\000\000\242\000\246\000\235\000\000\000\000\000\000\000\000\000\000\001\017\000\000\002\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\000\000\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\005s\000\000\001\019\000\000\000\000\000\240\000\000\000\129\000\241\000\246\000\000\000\231\000\130\000\000\002\176\000\000\000\235\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\001\015\002\231\000\000\000\000\000\233\000\000\000\000\000\000\000\242\005{\000\000\000\000\002\178\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\239\000\231\000\000\002\171\000\000\002\216\000\235\000\000\000\000\000\000\000\000\000\240\001\017\000\239\002\172\000\130\000\000\002\231\000\000\000\000\000\225\000\000\001\015\000\000\000\242\000\000\000\233\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\129\002\219\000\000\000\000\000\231\000\000\000\246\000\000\000\000\000\235\002\181\000\000\000\000\001\017\000\000\000\000\000\000\000\129\000\000\000\000\000\239\000\231\000\130\000\000\000\000\000\000\000\235\000\225\000\000\001\015\000\000\000\000\000\244\000\233\000\000\000\000\001\025\000\000\005\230\000\000\001\019\000\000\000\000\000\240\000\000\000\000\000\241\000\246\000\000\000\000\000\000\005\242\000\000\002\183\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\239\002\184\000\000\000\225\002\231\001\015\000\000\000\000\000\000\000\233\000\000\000\242\000\129\000\000\000\000\000\130\000\231\002\231\000\000\000\000\000\225\000\235\001\015\000\000\000\242\000\000\000\233\000\000\000\000\000\000\000\000\005\247\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\001\017\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\244\000\239\000\000\000\000\001\025\002\231\000\000\000\000\001\019\000\000\000\000\000\000\000\242\000\244\000\000\000\246\000\000\001\025\000\130\005\254\000\000\001\019\000\000\000\225\000\240\001\015\000\000\000\241\000\246\000\233\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\001\017\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\231\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\244\000\000\006\007\000\239\001\025\000\000\000\000\000\240\001\019\000\000\000\241\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\006\020\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\001\017\000\000\000\000\000\000\000\129\000\000\000\000\002\231\000\231\000\000\000\000\000\130\000\000\000\235\000\242\000\000\000\225\000\000\001\015\000\244\000\000\000\000\000\233\001\025\002\231\000\000\000\000\001\019\000\000\000\000\000\000\000\242\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\006!\000\235\000\129\000\239\000\000\000\240\000\231\001\017\000\241\000\244\000\000\000\235\007\187\001\025\000\000\000\000\000\130\001\019\000\000\000\000\000\000\000\225\b \001\015\000\246\000\000\000\244\000\233\000\000\000\000\001\025\000\000\000\000\002\231\001\019\000\000\000\000\000\000\000\000\000\000\000\242\000\246\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\239\000\225\000\000\001\015\000\000\000\000\000\130\000\233\001\017\000\000\000\000\000\225\000\129\001\015\000\000\000\000\000\231\000\233\000\000\000\000\006&\000\235\000\000\000\000\000\000\000\240\000\000\000\244\000\241\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\239\000\246\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\239\000\225\002\231\001\015\000\000\000\000\000\000\000\233\000\000\000\242\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\130\006-\000\000\000\000\000\129\000\225\000\240\001\015\000\231\000\241\000\000\000\233\001\017\000\235\000\000\000\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\000\000\000\244\000\000\000\000\002\231\001\025\000\000\000\000\000\000\001\019\000\000\000\242\000\000\000\000\002;\000\239\000\246\000\240\002<\000\000\000\241\000\130\002=\000\000\000\000\000\000\000\225\000\240\001\015\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\130\001\017\000\000\000\000\000\000\000\225\007\188\001\015\000\000\000\000\000\000\000\233\000\000\000\242\000\000\000\000\007\188\000\000\000\000\000\000\000\244\000\000\000\000\000\242\001\025\000\000\000\000\000\239\001\019\000\240\000\000\000\000\000\241\000\000\000\000\000\246\000\000\000\000\000\000\000\129\002\174\000\000\001\017\000\231\002>\000\239\000\000\000\000\000\235\000\000\002?\000\000\001\017\000\000\000\000\000\000\000\000\001L\000\000\000\240\000\000\000\244\000\241\000\000\000\242\001\025\000\000\000\000\000\000\001\019\000\000\000\244\000\000\000\000\000\000\001\025\000\246\002\225\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\002\026\000\000\000\000\000\000\000\000\000\000\001\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\240\001\015\000\244\000\241\002\176\000\233\001\025\000\000\000\000\000\000\001\019\000\000\000\000\001\017\000\000\000\000\000\000\000\246\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\002\028\000\000\000\000\000\000\000\244\000\000\002\178\000\242\001\025\000\000\000\000\000\239\001\019\000\000\000\000\000\000\000\000\000\000\002\149\000\246\000\000\000\000\002\171\000\000\002\216\000\242\000\000\000\000\000\129\000\000\000\240\000\000\000\231\002\172\000\000\000\000\001\017\000\235\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\244\000\000\000\000\000\129\001\025\002\219\000\000\000\231\001\019\000\000\000\000\000\000\000\235\000\000\002\181\000\246\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\000\000\001\015\000\000\000\000\000\130\000\233\000\000\000\000\000\000\000\225\000\000\001\015\000\000\002\183\000\000\000\233\000\000\000\000\000\129\000\000\000\000\000\000\000\231\002\165\000\130\000\000\000\000\000\232\002\184\000\225\000\242\001\015\000\129\000\129\000\000\000\233\000\231\000\231\000\000\000\239\000\000\000\235\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\244\000\231\000\000\000\000\001\025\000\130\000\235\000\000\001\019\000\000\000\225\000\000\000\000\000\000\000\000\000\246\000\233\000\000\000\000\000\130\000\130\000\000\000\000\000\000\000\225\000\225\001\015\001\015\000\000\000\000\000\233\000\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\000\240\000\000\000\000\000\241\000\000\000\000\000\239\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\130\000\000\000\239\000\239\000\000\000\225\000\000\001\015\000\000\000\000\003\b\000\233\000\240\000\000\000\000\000\241\000\000\000\242\000\000\000\000\004A\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\004G\000\000\000\000\000\000\000\000\000\239\001\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\001\017\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\240\000\000\001\019\000\241\000\244\001\017\000\000\000\000\001\025\000\246\000\000\000\000\001\019\000\000\000\240\000\240\000\000\000\241\000\241\000\246\000\000\000\000\000\130\000\000\000\244\000\000\000\000\000\225\001\025\001\015\000\000\000\000\001\019\000\233\000\000\000\242\000\000\000\000\000\000\000\246\000\000\000\000\004\142\004\147\000\000\000\000\000\000\000\000\000\130\000\242\000\242\000\000\000\000\000\225\000\129\001\015\000\000\000\240\000\231\000\233\000\241\000\000\000\000\000\235\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\000\000\000\000\000\248\000\000\004\151\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\239\001\031\000\000\000\235\000\244\000\244\000\000\000\000\001\025\001\025\000\000\000\000\001\019\001\019\000\000\000\000\000\000\000\000\000\000\000\246\000\246\000\000\000\000\000\000\000\000\000\000\000\130\000\000\001\017\000\000\000\000\000\225\000\000\001\015\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\129\001\019\000\000\000\240\000\231\000\130\000\241\000\000\000\246\000\235\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\004\189\000\241\000\000\000\000\000\000\000\000\000\129\000\242\000\129\000\000\000\231\000\000\000\231\000\000\000\000\000\232\000\130\000\235\000\000\000\239\000\000\000\225\000\000\001\015\000\000\000\000\005\b\000\233\000\000\000\000\000\000\000\000\000\000\000\242\000\130\000\000\001\017\000\000\000\000\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\244\000\235\000\000\000\000\001\025\000\000\000\239\001\017\001\019\000\000\000\000\000\000\000\000\000\000\000\240\000\246\000\130\000\241\000\130\000\000\000\000\000\225\000\000\000\225\000\239\001\015\000\244\000\233\000\000\000\233\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\0053\000\000\000\000\000\000\000\000\000\240\000\000\000\242\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\239\000\225\000\239\001\015\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\000\000\005\217\000\235\000\000\001\017\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\129\000\241\000\000\000\000\000\231\000\000\000\244\000\000\000\000\000\235\001\025\000\239\000\000\000\000\001\019\000\000\000\240\000\000\000\000\000\241\001\017\000\246\000\000\000\000\000\000\000\000\006C\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\244\000\000\000\130\000\000\001\025\006W\000\000\000\225\001\019\001\015\000\000\000\000\000\242\000\233\000\240\000\246\000\240\000\241\000\000\000\241\000\000\000\000\000\000\001\017\000\000\000\000\000\130\000\000\000\000\000\000\000\129\000\225\000\000\001\015\000\231\000\000\000\000\000\233\000\000\000\235\000\000\001\017\000\244\000\000\006Y\000\000\001\025\000\239\000\000\000\242\001\019\000\242\000\000\000\000\000\000\000\240\000\000\000\246\000\241\000\000\000\244\000\129\000\000\000\000\001\025\000\231\000\000\000\000\001\019\000\129\000\232\000\239\000\000\000\231\000\000\000\246\000\000\000\000\000\235\000\000\001\017\000\000\000\000\006[\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\130\000\000\000\248\000\000\000\244\000\225\000\000\001\015\001\025\000\000\000\000\000\233\001\019\001!\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\129\000\000\000\000\000\130\000\231\000\000\000\000\000\240\000\225\000\232\000\241\000\130\000\000\000\000\000\233\000\244\000\225\000\239\000\000\001\025\000\000\000\000\000\233\001\019\000\000\000\000\000\000\000\130\000\000\000\000\000\246\000\240\000\225\000\000\000\241\006a\000\129\000\000\000\233\000\000\000\231\000\000\000\242\000\129\000\000\000\232\000\000\000\231\000\239\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\239\000\000\000\000\006r\000\232\000\000\000\000\000\000\000\000\000\130\000\242\000\000\000\000\000\000\000\225\001\017\000\239\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\244\000\231\000\000\000\000\001\025\001\017\000\232\000\000\001\019\000\000\000\240\000\130\000\000\000\241\000\000\000\246\000\225\000\000\000\130\000\000\000\239\000\000\000\233\000\225\000\244\000\000\000\130\000\000\001\025\000\233\000\000\000\225\001\019\000\000\000\000\000\000\000\000\000\233\006\128\000\246\000\000\000\240\000\000\000\000\000\241\000\242\000\129\000\000\000\000\000\240\000\231\000\000\000\241\000\000\000\000\000\232\000\239\000\000\000\000\000\000\000\000\000\000\000\130\000\239\000\000\000\240\000\000\000\225\000\241\000\000\000\000\000\239\000\000\000\233\001\017\000\000\000\242\000\000\000\000\000\000\000\000\000\000\004\217\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\244\000\232\000\129\000\000\001\025\000\000\000\231\000\242\001\019\000\000\000\240\000\232\000\000\000\241\000\239\000\246\000\000\000\000\000\130\000\000\001\017\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\001#\001\023\000\000\000\242\000\240\001\019\000\000\000\241\000\000\000\000\000\000\000\240\000\246\000\248\000\241\000\130\000\000\000\000\000\000\000\240\000\225\000\239\000\241\000\129\001%\000\130\000\233\000\231\000\000\000\000\000\225\000\000\000\232\000\000\000\000\000\000\000\233\000\000\000\129\000\242\000\000\000\000\000\231\000\000\000\000\000\000\000\242\000\232\000\000\000\000\000\000\000\248\000\129\000\000\000\242\000\240\000\231\000\000\000\241\000\129\000\239\000\232\001'\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\239\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\248\000\130\000\000\000\242\000\000\000\000\000\225\000\248\000\000\000\000\000\000\001)\000\233\000\000\000\000\000\248\000\130\000\240\001+\000\000\000\241\000\225\000\000\000\000\000\000\000\000\001-\000\233\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\130\000\000\000\000\000\000\000\233\000\225\000\000\000\000\000\000\000\239\000\000\000\233\000\000\000\000\000\248\000\242\000\130\000\000\000\000\000\240\000\000\000\225\000\241\000\000\000\239\001/\000\000\000\233\000\000\000\240\000\000\000\000\000\241\000\129\000\000\000\129\000\000\000\231\000\239\000\231\000\000\000\000\000\232\000\000\000\232\000\239\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\000\000\000\000\239\000\000\000\248\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\240\000\000\000\232\000\241\000\000\000\000\000\130\000\000\000\130\000\000\000\248\000\225\000\000\000\225\000\000\000\240\000\000\000\233\000\241\000\233\000\248\0013\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\240\000\000\0015\000\241\000\233\000\000\000\242\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\239\000\240\000\239\000\232\000\241\000\000\000\129\000\130\000\000\000\000\000\231\000\000\000\225\000\242\000\000\000\232\000\239\000\000\000\233\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\248\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\000\000\000\0017\000\000\000\129\000\000\000\248\000\000\000\231\000\000\000\000\000\239\000\000\000\232\000\000\000\000\000\000\0019\000\130\000\000\000\248\000\000\000\000\000\225\000\000\000\000\000\000\000\248\000\000\000\233\000\130\002r\000\000\000\000\000\000\000\225\000\000\000\000\002x\000\000\000\000\000\233\000\240\000\248\000\240\000\241\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\002z\000\130\000\000\000\000\000\240\000\000\000\225\000\241\000\000\000\239\000\000\000\000\000\233\000\000\000\000\000\130\000\000\000\000\000\129\000\000\000\225\000\239\000\231\000\242\000\000\000\242\000\233\000\232\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\242\000\240\000\232\000\000\000\241\000\000\000\129\000\239\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\129\000\000\000\000\000\000\000\231\000\239\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\248\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002|\000\130\002~\000\000\000\000\000\248\000\225\000\000\000\000\000\000\000\240\000\000\000\233\000\241\000\129\000\130\002\128\000\000\000\231\000\000\000\225\000\000\000\240\000\232\000\000\000\241\000\233\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\130\000\233\000\000\000\248\000\000\000\225\000\000\000\242\000\239\000\240\000\000\000\233\000\241\000\000\002\130\000\000\000\000\000\000\000\000\000\242\000\129\000\000\000\239\000\240\000\231\000\000\000\241\000\000\000\129\000\232\000\000\000\000\000\231\000\000\000\000\000\239\000\000\000\232\000\000\000\000\000\000\000\130\000\000\000\000\000\242\000\239\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\248\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\132\000\248\000\000\000\000\000\000\000\129\000\129\000\000\000\000\000\231\000\231\000\000\002\134\000\000\000\232\000\232\000\000\000\000\000\000\000\130\000\239\000\000\000\000\000\000\000\225\000\240\000\248\000\130\000\241\000\000\000\233\000\000\000\225\000\000\000\000\000\000\000\000\002\136\000\233\000\240\000\248\000\000\000\241\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\002\138\000\240\000\232\000\000\000\241\000\000\000\000\000\000\000\000\000\242\000\000\000\240\000\000\000\239\000\241\000\000\000\000\000\000\000\000\000\130\000\130\000\239\000\000\000\242\000\225\000\225\000\000\000\000\000\000\000\000\000\233\000\233\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\129\000\000\000\242\000\000\000\231\000\000\000\000\000\000\000\240\000\232\000\000\000\241\000\000\000\248\000\130\000\000\000\000\000\000\000\000\000\225\000\239\000\239\000\000\000\000\002\140\000\233\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\142\000\000\000\248\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\129\000\248\002\144\000\240\000\231\000\000\000\241\000\000\000\000\000\232\000\239\000\240\002\186\000\000\000\241\000\129\000\130\000\000\000\000\000\231\000\000\000\225\000\129\000\000\000\232\000\000\000\231\000\233\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\000\000\000\000\000\000\242\000\232\000\000\000\000\000\248\000\129\000\000\000\000\000\242\000\231\000\000\000\000\000\000\000\000\000\232\002\188\000\240\000\240\000\000\000\241\000\241\000\000\000\000\000\239\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\248\000\130\000\000\000\242\000\242\000\233\000\225\000\240\000\248\000\130\000\241\002\190\000\233\000\000\000\225\000\000\000\000\000\000\000\000\002\192\000\233\000\129\000\130\000\000\000\239\000\231\000\000\000\225\000\000\000\000\000\232\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\129\000\242\000\000\000\000\000\231\000\239\000\000\000\000\000\000\000\232\000\248\000\248\000\000\000\239\000\000\000\000\000\000\000\240\000\000\000\000\000\241\002\194\002\196\000\000\000\000\000\000\000\239\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\130\000\232\000\000\000\000\000\248\000\225\000\000\000\242\000\000\000\000\000\000\000\233\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\129\000\130\000\240\000\000\000\231\000\241\000\225\000\000\000\000\000\232\000\000\000\000\000\233\000\000\000\129\000\000\000\000\000\240\000\231\000\000\000\241\000\000\000\000\000\232\000\240\000\000\000\239\000\241\000\130\000\000\000\000\000\000\000\240\000\225\000\000\000\241\000\248\000\242\000\130\000\233\000\000\000\000\000\000\000\225\000\000\000\240\000\239\002\200\000\241\000\233\000\000\000\129\000\242\000\000\000\000\000\231\000\000\000\000\000\000\000\242\000\232\000\000\000\000\000\000\000\000\000\130\000\000\000\242\000\000\000\000\000\225\000\000\000\000\000\239\000\000\000\000\000\233\000\129\000\129\000\130\000\242\000\231\000\231\000\239\000\225\000\248\000\232\000\232\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\129\002\202\000\000\000\000\000\231\000\248\000\000\000\000\000\000\000\232\000\000\000\000\000\248\000\000\000\240\000\239\002\204\000\241\000\000\000\000\000\248\000\130\000\000\002\206\000\000\000\000\000\225\000\000\000\000\000\239\000\000\002\208\000\233\000\248\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\002\210\000\000\000\129\000\130\000\130\000\242\000\231\000\000\000\225\000\225\000\000\000\232\000\000\000\000\000\233\000\233\000\000\000\240\000\000\000\000\000\241\000\130\000\239\000\000\000\000\000\242\000\225\000\240\000\000\000\000\000\241\000\129\000\233\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\239\000\000\000\000\000\242\000\248\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\242\000\000\002\212\000\000\000\239\000\130\000\240\000\000\000\000\000\241\000\225\000\248\000\000\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\004\213\000\000\000\232\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\129\000\130\000\000\000\000\000\231\000\248\000\225\000\000\000\242\000\232\000\240\000\000\000\233\000\241\000\000\000\248\004\219\000\239\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\004\221\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\240\000\000\000\241\000\241\000\000\000\248\000\000\000\000\000\242\000\239\000\130\000\000\000\000\000\000\000\129\000\225\004\223\000\240\000\231\000\248\000\241\000\233\000\000\000\232\000\000\000\000\000\000\000\000\000\130\000\000\004\225\000\000\000\000\000\225\000\242\000\242\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\242\000\000\000\000\000\239\000\248\000\233\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\004\227\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\248\000\248\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\239\000\240\004\229\004\231\000\241\000\000\000\000\000\242\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\000\239\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\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\004\235\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\240\000\248\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\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\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\242\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\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\000\000\000\000\000\248\000\000\000\000\000\242\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\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\019"))
   
   let semantic_action =
     [|
@@ -1749,13 +1753,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_dexpr = Obj.magic _1 in
+        let _1 : 'tv_dargexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 2284 "parser_cocci_menhir.mly"
-          ( Ast0.set_arg_exp _1 )
-# 1759 "parser_cocci_menhir.ml"
+# 2320 "parser_cocci_menhir.mly"
+             ( Ast0.set_arg_exp _1 )
+# 1763 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1774,14 +1778,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 134 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 1780 "parser_cocci_menhir.ml"
+# 1784 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 2286 "parser_cocci_menhir.mly"
+# 2322 "parser_cocci_menhir.mly"
       ( let (nm,lenname,pure,clt) = _1 in
       let nm = P.clt2mcode nm clt in
       let lenname =
@@ -1790,7 +1794,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
        | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt)
        | Ast.CstLen n -> Ast0.CstListLen n in
       Ast0.wrap(Ast0.MetaExprList(nm,lenname,pure)) )
-# 1794 "parser_cocci_menhir.ml"
+# 1798 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1812,9 +1816,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 2295 "parser_cocci_menhir.mly"
+# 2331 "parser_cocci_menhir.mly"
       ( Ast0.set_arg_exp(Ast0.wrap(Ast0.TypeExp(_1))) )
-# 1818 "parser_cocci_menhir.ml"
+# 1822 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1834,9 +1838,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2331 "parser_cocci_menhir.mly"
+# 2367 "parser_cocci_menhir.mly"
             ( Ast.WhenAny )
-# 1840 "parser_cocci_menhir.ml"
+# 1844 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1856,9 +1860,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2332 "parser_cocci_menhir.mly"
+# 2368 "parser_cocci_menhir.mly"
             ( Ast.WhenStrict )
-# 1862 "parser_cocci_menhir.ml"
+# 1866 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1878,9 +1882,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2333 "parser_cocci_menhir.mly"
+# 2369 "parser_cocci_menhir.mly"
             ( Ast.WhenForall )
-# 1884 "parser_cocci_menhir.ml"
+# 1888 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1900,9 +1904,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2334 "parser_cocci_menhir.mly"
+# 2370 "parser_cocci_menhir.mly"
             ( Ast.WhenExists )
-# 1906 "parser_cocci_menhir.ml"
+# 1910 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1924,9 +1928,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1505 "parser_cocci_menhir.mly"
+# 1541 "parser_cocci_menhir.mly"
                                             ( _1 )
-# 1930 "parser_cocci_menhir.ml"
+# 1934 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1956,17 +1960,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 1962 "parser_cocci_menhir.ml"
+# 1966 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1507 "parser_cocci_menhir.mly"
+# 1543 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
-# 1970 "parser_cocci_menhir.ml"
+# 1974 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1996,17 +2000,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 166 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2002 "parser_cocci_menhir.ml"
+# 2006 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1509 "parser_cocci_menhir.mly"
+# 1545 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2010 "parser_cocci_menhir.ml"
+# 2014 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2036,17 +2040,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2042 "parser_cocci_menhir.ml"
+# 2046 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1511 "parser_cocci_menhir.mly"
+# 1547 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
-# 2050 "parser_cocci_menhir.ml"
+# 2054 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2076,17 +2080,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2082 "parser_cocci_menhir.ml"
+# 2086 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1513 "parser_cocci_menhir.mly"
+# 1549 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
-# 2090 "parser_cocci_menhir.ml"
+# 2094 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2116,17 +2120,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2122 "parser_cocci_menhir.ml"
+# 2126 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1515 "parser_cocci_menhir.mly"
+# 1551 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2130 "parser_cocci_menhir.ml"
+# 2134 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2156,17 +2160,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2162 "parser_cocci_menhir.ml"
+# 2166 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1517 "parser_cocci_menhir.mly"
+# 1553 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2170 "parser_cocci_menhir.ml"
+# 2174 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2196,17 +2200,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 164 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 2202 "parser_cocci_menhir.ml"
+# 2206 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1519 "parser_cocci_menhir.mly"
+# 1555 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 2210 "parser_cocci_menhir.ml"
+# 2214 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2236,17 +2240,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2242 "parser_cocci_menhir.ml"
+# 2246 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1521 "parser_cocci_menhir.mly"
+# 1557 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
-# 2250 "parser_cocci_menhir.ml"
+# 2254 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2276,17 +2280,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2282 "parser_cocci_menhir.ml"
+# 2286 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1523 "parser_cocci_menhir.mly"
+# 1559 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 2290 "parser_cocci_menhir.ml"
+# 2294 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2316,17 +2320,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 162 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2322 "parser_cocci_menhir.ml"
+# 2326 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1525 "parser_cocci_menhir.mly"
+# 1561 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
-# 2330 "parser_cocci_menhir.ml"
+# 2334 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2356,17 +2360,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 160 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2362 "parser_cocci_menhir.ml"
+# 2366 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1527 "parser_cocci_menhir.mly"
+# 1563 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 2370 "parser_cocci_menhir.ml"
+# 2374 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2396,17 +2400,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 161 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2402 "parser_cocci_menhir.ml"
+# 2406 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1529 "parser_cocci_menhir.mly"
+# 1565 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 2410 "parser_cocci_menhir.ml"
+# 2414 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2436,17 +2440,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2442 "parser_cocci_menhir.ml"
+# 2446 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1531 "parser_cocci_menhir.mly"
+# 1567 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 2450 "parser_cocci_menhir.ml"
+# 2454 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2476,17 +2480,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 158 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2482 "parser_cocci_menhir.ml"
+# 2486 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1533 "parser_cocci_menhir.mly"
+# 1569 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 2490 "parser_cocci_menhir.ml"
+# 2494 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2508,9 +2512,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1505 "parser_cocci_menhir.mly"
+# 1541 "parser_cocci_menhir.mly"
                                             ( _1 )
-# 2514 "parser_cocci_menhir.ml"
+# 2518 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2540,17 +2544,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2546 "parser_cocci_menhir.ml"
+# 2550 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1507 "parser_cocci_menhir.mly"
+# 1543 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
-# 2554 "parser_cocci_menhir.ml"
+# 2558 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2580,17 +2584,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 166 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2586 "parser_cocci_menhir.ml"
+# 2590 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1509 "parser_cocci_menhir.mly"
+# 1545 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2594 "parser_cocci_menhir.ml"
+# 2598 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2620,17 +2624,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2626 "parser_cocci_menhir.ml"
+# 2630 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1511 "parser_cocci_menhir.mly"
+# 1547 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
-# 2634 "parser_cocci_menhir.ml"
+# 2638 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2660,17 +2664,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2666 "parser_cocci_menhir.ml"
+# 2670 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1513 "parser_cocci_menhir.mly"
+# 1549 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
-# 2674 "parser_cocci_menhir.ml"
+# 2678 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2700,17 +2704,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2706 "parser_cocci_menhir.ml"
+# 2710 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1515 "parser_cocci_menhir.mly"
+# 1551 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2714 "parser_cocci_menhir.ml"
+# 2718 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2740,17 +2744,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2746 "parser_cocci_menhir.ml"
+# 2750 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1517 "parser_cocci_menhir.mly"
+# 1553 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2754 "parser_cocci_menhir.ml"
+# 2758 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2780,17 +2784,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 164 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 2786 "parser_cocci_menhir.ml"
+# 2790 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1519 "parser_cocci_menhir.mly"
+# 1555 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 2794 "parser_cocci_menhir.ml"
+# 2798 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2820,17 +2824,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2826 "parser_cocci_menhir.ml"
+# 2830 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1521 "parser_cocci_menhir.mly"
+# 1557 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
-# 2834 "parser_cocci_menhir.ml"
+# 2838 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2860,17 +2864,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2866 "parser_cocci_menhir.ml"
+# 2870 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1523 "parser_cocci_menhir.mly"
+# 1559 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 2874 "parser_cocci_menhir.ml"
+# 2878 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2900,17 +2904,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 162 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2906 "parser_cocci_menhir.ml"
+# 2910 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1525 "parser_cocci_menhir.mly"
+# 1561 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
-# 2914 "parser_cocci_menhir.ml"
+# 2918 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2940,17 +2944,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 160 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2946 "parser_cocci_menhir.ml"
+# 2950 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1527 "parser_cocci_menhir.mly"
+# 1563 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 2954 "parser_cocci_menhir.ml"
+# 2958 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2980,17 +2984,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 161 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2986 "parser_cocci_menhir.ml"
+# 2990 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1529 "parser_cocci_menhir.mly"
+# 1565 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 2994 "parser_cocci_menhir.ml"
+# 2998 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3020,17 +3024,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3026 "parser_cocci_menhir.ml"
+# 3030 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1531 "parser_cocci_menhir.mly"
+# 1567 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 3034 "parser_cocci_menhir.ml"
+# 3038 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3060,17 +3064,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 158 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3066 "parser_cocci_menhir.ml"
+# 3070 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1533 "parser_cocci_menhir.mly"
+# 1569 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 3074 "parser_cocci_menhir.ml"
+# 3078 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3092,9 +3096,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1505 "parser_cocci_menhir.mly"
+# 1541 "parser_cocci_menhir.mly"
                                             ( _1 )
-# 3098 "parser_cocci_menhir.ml"
+# 3102 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3124,17 +3128,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3130 "parser_cocci_menhir.ml"
+# 3134 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1507 "parser_cocci_menhir.mly"
+# 1543 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
-# 3138 "parser_cocci_menhir.ml"
+# 3142 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3164,17 +3168,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 166 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 3170 "parser_cocci_menhir.ml"
+# 3174 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1509 "parser_cocci_menhir.mly"
+# 1545 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3178 "parser_cocci_menhir.ml"
+# 3182 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3204,17 +3208,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3210 "parser_cocci_menhir.ml"
+# 3214 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1511 "parser_cocci_menhir.mly"
+# 1547 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
-# 3218 "parser_cocci_menhir.ml"
+# 3222 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3244,17 +3248,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3250 "parser_cocci_menhir.ml"
+# 3254 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1513 "parser_cocci_menhir.mly"
+# 1549 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
-# 3258 "parser_cocci_menhir.ml"
+# 3262 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3284,17 +3288,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 3290 "parser_cocci_menhir.ml"
+# 3294 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1515 "parser_cocci_menhir.mly"
+# 1551 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3298 "parser_cocci_menhir.ml"
+# 3302 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3324,17 +3328,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 3330 "parser_cocci_menhir.ml"
+# 3334 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1517 "parser_cocci_menhir.mly"
+# 1553 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3338 "parser_cocci_menhir.ml"
+# 3342 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3364,17 +3368,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 164 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 3370 "parser_cocci_menhir.ml"
+# 3374 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1519 "parser_cocci_menhir.mly"
+# 1555 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 3378 "parser_cocci_menhir.ml"
+# 3382 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3404,17 +3408,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3410 "parser_cocci_menhir.ml"
+# 3414 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1521 "parser_cocci_menhir.mly"
+# 1557 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
-# 3418 "parser_cocci_menhir.ml"
+# 3422 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3444,17 +3448,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3450 "parser_cocci_menhir.ml"
+# 3454 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1523 "parser_cocci_menhir.mly"
+# 1559 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 3458 "parser_cocci_menhir.ml"
+# 3462 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3484,17 +3488,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 162 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3490 "parser_cocci_menhir.ml"
+# 3494 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1525 "parser_cocci_menhir.mly"
+# 1561 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
-# 3498 "parser_cocci_menhir.ml"
+# 3502 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3524,17 +3528,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 160 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3530 "parser_cocci_menhir.ml"
+# 3534 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1527 "parser_cocci_menhir.mly"
+# 1563 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 3538 "parser_cocci_menhir.ml"
+# 3542 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3564,17 +3568,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 161 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3570 "parser_cocci_menhir.ml"
+# 3574 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1529 "parser_cocci_menhir.mly"
+# 1565 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 3578 "parser_cocci_menhir.ml"
+# 3582 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3604,241 +3608,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3610 "parser_cocci_menhir.ml"
+# 3614 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1531 "parser_cocci_menhir.mly"
+# 1567 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 3618 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          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.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            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 : 'tv_arith_expr_bis = Obj.magic _3 in
-        let _2 : (
-# 158 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 3650 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1533 "parser_cocci_menhir.mly"
-      ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 3658 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          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 : 'tv_cast_expr_expr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1505 "parser_cocci_menhir.mly"
-                                            ( _1 )
-# 3682 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          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.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            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 : 'tv_arith_expr_bis = Obj.magic _3 in
-        let _2 : (
-# 168 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 3714 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1507 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Mul _1 _2 _3 )
-# 3722 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          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.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            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 : 'tv_arith_expr_bis = Obj.magic _3 in
-        let _2 : (
-# 166 "parser_cocci_menhir.mly"
-       (Ast_cocci.arithOp * Data.clt)
-# 3754 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1509 "parser_cocci_menhir.mly"
-      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3762 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          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.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            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 : 'tv_arith_expr_bis = Obj.magic _3 in
-        let _2 : (
-# 167 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 3794 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1511 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Plus _1 _2 _3 )
-# 3802 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          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.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            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 : 'tv_arith_expr_bis = Obj.magic _3 in
-        let _2 : (
-# 167 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 3834 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1513 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Minus _1 _2 _3 )
-# 3842 "parser_cocci_menhir.ml"
+# 3622 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3868,17 +3648,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
-       (Ast_cocci.arithOp * Data.clt)
-# 3874 "parser_cocci_menhir.ml"
+# 161 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 3654 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
+# 1569 "parser_cocci_menhir.mly"
+      ( P.logic_op Ast.OrLog _1 _2 _3 )
+# 3662 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_cast_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_arith_expr_expr_invalid_ = 
+# 1541 "parser_cocci_menhir.mly"
+                                            ( _1 )
+# 3686 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            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 : 'tv_arith_expr_bis = Obj.magic _3 in
+        let _2 : (
+# 171 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 3718 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1515 "parser_cocci_menhir.mly"
-      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3882 "parser_cocci_menhir.ml"
+# 1543 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Mul _1 _2 _3 )
+# 3726 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3908,17 +3752,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 3914 "parser_cocci_menhir.ml"
+# 3758 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1517 "parser_cocci_menhir.mly"
+# 1545 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3922 "parser_cocci_menhir.ml"
+# 3766 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3948,17 +3792,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 164 "parser_cocci_menhir.mly"
-       (Ast_cocci.logicalOp * Data.clt)
-# 3954 "parser_cocci_menhir.ml"
+# 170 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 3798 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1519 "parser_cocci_menhir.mly"
-      ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 3962 "parser_cocci_menhir.ml"
+# 1547 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Plus _1 _2 _3 )
+# 3806 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3988,17 +3832,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3994 "parser_cocci_menhir.ml"
+# 3838 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1521 "parser_cocci_menhir.mly"
-      ( P.logic_op Ast.Eq _1 _2 _3 )
-# 4002 "parser_cocci_menhir.ml"
+# 1549 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Minus _1 _2 _3 )
+# 3846 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4028,17 +3872,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4034 "parser_cocci_menhir.ml"
+# 168 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 3878 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1523 "parser_cocci_menhir.mly"
-      ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 4042 "parser_cocci_menhir.ml"
+# 1551 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 3886 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4068,17 +3912,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 162 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4074 "parser_cocci_menhir.ml"
+# 168 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 3918 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1525 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.And _1 _2 _3 )
-# 4082 "parser_cocci_menhir.ml"
+# 1553 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 3926 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4108,17 +3952,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 160 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4114 "parser_cocci_menhir.ml"
+# 167 "parser_cocci_menhir.mly"
+       (Ast_cocci.logicalOp * Data.clt)
+# 3958 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1527 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Or _1 _2 _3 )
-# 4122 "parser_cocci_menhir.ml"
+# 1555 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
+# 3966 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4148,17 +3992,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 161 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4154 "parser_cocci_menhir.ml"
+# 3998 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1529 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Xor _1 _2 _3 )
-# 4162 "parser_cocci_menhir.ml"
+# 1557 "parser_cocci_menhir.mly"
+      ( P.logic_op Ast.Eq _1 _2 _3 )
+# 4006 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4188,17 +4032,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 159 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4194 "parser_cocci_menhir.ml"
+# 4038 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1531 "parser_cocci_menhir.mly"
-      ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 4202 "parser_cocci_menhir.ml"
+# 1559 "parser_cocci_menhir.mly"
+      ( P.logic_op Ast.NotEq _1 _2 _3 )
+# 4046 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4228,17 +4072,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 158 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4234 "parser_cocci_menhir.ml"
+# 4078 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1533 "parser_cocci_menhir.mly"
-      ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 4242 "parser_cocci_menhir.ml"
+# 1561 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.And _1 _2 _3 )
+# 4086 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4250,19 +4094,75 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            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 : 'tv_arith_expr_bis = Obj.magic _3 in
+        let _2 : (
+# 163 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 4118 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_expr_invalid_ = 
+# 1563 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Or _1 _2 _3 )
+# 4126 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
           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.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            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 : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
+        let _2 : (
+# 164 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 4158 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_arith_expr_bis = 
-# 1538 "parser_cocci_menhir.mly"
-                                                             ( _1 )
-# 4266 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_expr_invalid_ = 
+# 1565 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Xor _1 _2 _3 )
+# 4166 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4292,17 +4192,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 168 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4298 "parser_cocci_menhir.ml"
+# 4198 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
+        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_arith_expr_bis = 
-# 1540 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Mul _1 _2 _3 )
-# 4306 "parser_cocci_menhir.ml"
+        let _v : 'tv_arith_expr_expr_invalid_ = 
+# 1567 "parser_cocci_menhir.mly"
+      ( P.logic_op Ast.AndLog _1 _2 _3 )
+# 4206 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4332,17 +4232,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 166 "parser_cocci_menhir.mly"
-       (Ast_cocci.arithOp * Data.clt)
-# 4338 "parser_cocci_menhir.ml"
+# 161 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 4238 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
+        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_expr_invalid_ = 
+# 1569 "parser_cocci_menhir.mly"
+      ( P.logic_op Ast.OrLog _1 _2 _3 )
+# 4246 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_bis = 
-# 1542 "parser_cocci_menhir.mly"
-      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 4346 "parser_cocci_menhir.ml"
+# 1574 "parser_cocci_menhir.mly"
+                                                             ( _1 )
+# 4270 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4372,17 +4296,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4378 "parser_cocci_menhir.ml"
+# 4302 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1544 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Plus _1 _2 _3 )
-# 4386 "parser_cocci_menhir.ml"
+# 1576 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Mul _1 _2 _3 )
+# 4310 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4412,17 +4336,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 167 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4418 "parser_cocci_menhir.ml"
+# 169 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 4342 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1546 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.Minus _1 _2 _3 )
-# 4426 "parser_cocci_menhir.ml"
+# 1578 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 4350 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4452,17 +4376,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
-       (Ast_cocci.arithOp * Data.clt)
-# 4458 "parser_cocci_menhir.ml"
+# 170 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 4382 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1548 "parser_cocci_menhir.mly"
-      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 4466 "parser_cocci_menhir.ml"
+# 1580 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Plus _1 _2 _3 )
+# 4390 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4492,17 +4416,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 165 "parser_cocci_menhir.mly"
-       (Ast_cocci.arithOp * Data.clt)
-# 4498 "parser_cocci_menhir.ml"
+# 170 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 4422 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1550 "parser_cocci_menhir.mly"
-      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 4506 "parser_cocci_menhir.ml"
+# 1582 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.Minus _1 _2 _3 )
+# 4430 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4532,17 +4456,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 164 "parser_cocci_menhir.mly"
-       (Ast_cocci.logicalOp * Data.clt)
-# 4538 "parser_cocci_menhir.ml"
+# 168 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 4462 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1552 "parser_cocci_menhir.mly"
-      ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 4546 "parser_cocci_menhir.ml"
+# 1584 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 4470 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4572,17 +4496,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4578 "parser_cocci_menhir.ml"
+# 168 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 4502 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1554 "parser_cocci_menhir.mly"
-      ( P.logic_op Ast.Eq _1 _2 _3 )
-# 4586 "parser_cocci_menhir.ml"
+# 1586 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 4510 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4612,17 +4536,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 163 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4618 "parser_cocci_menhir.ml"
+# 167 "parser_cocci_menhir.mly"
+       (Ast_cocci.logicalOp * Data.clt)
+# 4542 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1556 "parser_cocci_menhir.mly"
-      ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 4626 "parser_cocci_menhir.ml"
+# 1588 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
+# 4550 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4652,17 +4576,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 162 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4658 "parser_cocci_menhir.ml"
+# 4582 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1558 "parser_cocci_menhir.mly"
-      ( P.arith_op Ast.And _1 _2 _3 )
-# 4666 "parser_cocci_menhir.ml"
+# 1590 "parser_cocci_menhir.mly"
+      ( P.logic_op Ast.Eq _1 _2 _3 )
+# 4590 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4692,17 +4616,97 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 160 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4698 "parser_cocci_menhir.ml"
+# 4622 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1560 "parser_cocci_menhir.mly"
+# 1592 "parser_cocci_menhir.mly"
+      ( P.logic_op Ast.NotEq _1 _2 _3 )
+# 4630 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            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 : 'tv_arith_expr_bis = Obj.magic _3 in
+        let _2 : (
+# 165 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 4662 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_bis = 
+# 1594 "parser_cocci_menhir.mly"
+      ( P.arith_op Ast.And _1 _2 _3 )
+# 4670 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            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 : 'tv_arith_expr_bis = Obj.magic _3 in
+        let _2 : (
+# 163 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 4702 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_bis = 
+# 1596 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 4706 "parser_cocci_menhir.ml"
+# 4710 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4732,17 +4736,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 161 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4738 "parser_cocci_menhir.ml"
+# 4742 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1562 "parser_cocci_menhir.mly"
+# 1598 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 4746 "parser_cocci_menhir.ml"
+# 4750 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4772,17 +4776,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4778 "parser_cocci_menhir.ml"
+# 4782 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_bis = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1564 "parser_cocci_menhir.mly"
+# 1600 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 4786 "parser_cocci_menhir.ml"
+# 4790 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4802,9 +4806,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 625 "parser_cocci_menhir.mly"
+# 628 "parser_cocci_menhir.mly"
               ( Ast.UNIQUE )
-# 4808 "parser_cocci_menhir.ml"
+# 4812 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4824,9 +4828,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 626 "parser_cocci_menhir.mly"
+# 629 "parser_cocci_menhir.mly"
               ( Ast.OPT )
-# 4830 "parser_cocci_menhir.ml"
+# 4834 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4846,9 +4850,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 627 "parser_cocci_menhir.mly"
+# 630 "parser_cocci_menhir.mly"
               ( Ast.MULTI )
-# 4852 "parser_cocci_menhir.ml"
+# 4856 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4863,9 +4867,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_arity = 
-# 628 "parser_cocci_menhir.mly"
+# 631 "parser_cocci_menhir.mly"
                    ( Ast.NONE )
-# 4869 "parser_cocci_menhir.ml"
+# 4873 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4894,22 +4898,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let r : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4900 "parser_cocci_menhir.ml"
+# 4904 "parser_cocci_menhir.ml"
         ) = Obj.magic r in
         let i : 'tv_option_eexpr_ = Obj.magic i in
         let l : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4906 "parser_cocci_menhir.ml"
+# 4910 "parser_cocci_menhir.ml"
         ) = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_array_dec = 
-# 1317 "parser_cocci_menhir.mly"
+# 1341 "parser_cocci_menhir.mly"
                                            ( (l,i,r) )
-# 4913 "parser_cocci_menhir.ml"
+# 4917 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4931,9 +4935,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_eexpr_dot_expressions_ = 
-# 1477 "parser_cocci_menhir.mly"
+# 1512 "parser_cocci_menhir.mly"
                                            ( _1 )
-# 4937 "parser_cocci_menhir.ml"
+# 4941 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4963,19 +4967,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 177 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 4969 "parser_cocci_menhir.ml"
+# 4973 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_dot_expressions_ = 
-# 1479 "parser_cocci_menhir.mly"
+# 1514 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 4979 "parser_cocci_menhir.ml"
+# 4983 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5005,19 +5009,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5011 "parser_cocci_menhir.ml"
+# 5015 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_dot_expressions_ = 
-# 1483 "parser_cocci_menhir.mly"
+# 1518 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 5021 "parser_cocci_menhir.ml"
+# 5025 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5039,9 +5043,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_eexpr_nest_expressions_ = 
-# 1477 "parser_cocci_menhir.mly"
+# 1512 "parser_cocci_menhir.mly"
                                            ( _1 )
-# 5045 "parser_cocci_menhir.ml"
+# 5049 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5071,19 +5075,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 177 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 5077 "parser_cocci_menhir.ml"
+# 5081 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_nest_expressions_ = 
-# 1479 "parser_cocci_menhir.mly"
+# 1514 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 5087 "parser_cocci_menhir.ml"
+# 5091 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5113,19 +5117,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5119 "parser_cocci_menhir.ml"
+# 5123 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_nest_expressions_ = 
-# 1483 "parser_cocci_menhir.mly"
+# 1518 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 5129 "parser_cocci_menhir.ml"
+# 5133 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5147,9 +5151,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1477 "parser_cocci_menhir.mly"
+# 1512 "parser_cocci_menhir.mly"
                                            ( _1 )
-# 5153 "parser_cocci_menhir.ml"
+# 5157 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5179,19 +5183,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 177 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 5185 "parser_cocci_menhir.ml"
+# 5189 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1479 "parser_cocci_menhir.mly"
+# 1514 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 5195 "parser_cocci_menhir.ml"
+# 5199 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5221,19 +5225,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5227 "parser_cocci_menhir.ml"
+# 5231 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1483 "parser_cocci_menhir.mly"
+# 1518 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 5237 "parser_cocci_menhir.ml"
+# 5241 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5255,9 +5259,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_bis = 
-# 1488 "parser_cocci_menhir.mly"
+# 1523 "parser_cocci_menhir.mly"
                                                             ( _1 )
-# 5261 "parser_cocci_menhir.ml"
+# 5265 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5287,19 +5291,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 177 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 5293 "parser_cocci_menhir.ml"
+# 5297 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_bis = 
-# 1490 "parser_cocci_menhir.mly"
+# 1525 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 5303 "parser_cocci_menhir.ml"
+# 5307 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5329,19 +5333,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5335 "parser_cocci_menhir.ml"
+# 5339 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_bis = 
-# 1494 "parser_cocci_menhir.mly"
+# 1529 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 5345 "parser_cocci_menhir.ml"
+# 5349 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5363,9 +5367,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_basic_expr_eexpr_dot_expressions_ = 
-# 1474 "parser_cocci_menhir.mly"
+# 1509 "parser_cocci_menhir.mly"
                                                            ( _1 )
-# 5369 "parser_cocci_menhir.ml"
+# 5373 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5387,9 +5391,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_basic_expr_eexpr_nest_expressions_ = 
-# 1474 "parser_cocci_menhir.mly"
+# 1509 "parser_cocci_menhir.mly"
                                                            ( _1 )
-# 5393 "parser_cocci_menhir.ml"
+# 5397 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5411,9 +5415,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_basic_expr_expr_invalid_ = 
-# 1474 "parser_cocci_menhir.mly"
+# 1509 "parser_cocci_menhir.mly"
                                                            ( _1 )
-# 5417 "parser_cocci_menhir.ml"
+# 5421 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5443,22 +5447,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_fun_start = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5449 "parser_cocci_menhir.ml"
+# 5453 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5454 "parser_cocci_menhir.ml"
+# 5458 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_case_line = 
-# 1186 "parser_cocci_menhir.mly"
+# 1198 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) )
-# 5462 "parser_cocci_menhir.ml"
+# 5466 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5493,22 +5497,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _4 : 'tv_fun_start = Obj.magic _4 in
         let _3 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5499 "parser_cocci_menhir.ml"
+# 5503 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5505 "parser_cocci_menhir.ml"
+# 5509 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_case_line = 
-# 1189 "parser_cocci_menhir.mly"
+# 1201 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Case(P.clt2mcode "case" _1,_2,P.clt2mcode ":" _3,_4)) )
-# 5512 "parser_cocci_menhir.ml"
+# 5516 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5530,9 +5534,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_eexpr_dot_expressions_ = 
-# 1569 "parser_cocci_menhir.mly"
+# 1605 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 5536 "parser_cocci_menhir.ml"
+# 5540 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5567,23 +5571,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic e in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5573 "parser_cocci_menhir.ml"
+# 5577 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5579 "parser_cocci_menhir.ml"
+# 5583 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_eexpr_dot_expressions_ = 
-# 1571 "parser_cocci_menhir.mly"
+# 1607 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 5587 "parser_cocci_menhir.ml"
+# 5591 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5605,9 +5609,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_eexpr_invalid_ = 
-# 1569 "parser_cocci_menhir.mly"
+# 1605 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 5611 "parser_cocci_menhir.ml"
+# 5615 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5642,23 +5646,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_invalid_ = Obj.magic e in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5648 "parser_cocci_menhir.ml"
+# 5652 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5654 "parser_cocci_menhir.ml"
+# 5658 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_eexpr_invalid_ = 
-# 1571 "parser_cocci_menhir.mly"
+# 1607 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 5662 "parser_cocci_menhir.ml"
+# 5666 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5680,9 +5684,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_eexpr_nest_expressions_ = 
-# 1569 "parser_cocci_menhir.mly"
+# 1605 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 5686 "parser_cocci_menhir.ml"
+# 5690 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5717,23 +5721,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic e in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5723 "parser_cocci_menhir.ml"
+# 5727 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5729 "parser_cocci_menhir.ml"
+# 5733 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_eexpr_nest_expressions_ = 
-# 1571 "parser_cocci_menhir.mly"
+# 1607 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 5737 "parser_cocci_menhir.ml"
+# 5741 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5755,9 +5759,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_expr_invalid_ = 
-# 1569 "parser_cocci_menhir.mly"
+# 1605 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 5761 "parser_cocci_menhir.ml"
+# 5765 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5792,23 +5796,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_expr_invalid_ = Obj.magic e in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5798 "parser_cocci_menhir.ml"
+# 5802 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5804 "parser_cocci_menhir.ml"
+# 5808 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_expr_invalid_ = 
-# 1571 "parser_cocci_menhir.mly"
+# 1607 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 5812 "parser_cocci_menhir.ml"
+# 5816 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5834,9 +5838,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_choose_iso = 
-# 307 "parser_cocci_menhir.mly"
+# 310 "parser_cocci_menhir.mly"
                                                  ( List.map P.id2name _2 )
-# 5840 "parser_cocci_menhir.ml"
+# 5844 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5858,9 +5862,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_any_strict_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5864 "parser_cocci_menhir.ml"
+# 5868 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5882,9 +5886,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_ctype_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5888 "parser_cocci_menhir.ml"
+# 5892 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5906,9 +5910,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_d_ident_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5912 "parser_cocci_menhir.ml"
+# 5916 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5930,9 +5934,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_ident_or_const_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5936 "parser_cocci_menhir.ml"
+# 5940 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5954,9 +5958,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_meta_ident_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5960 "parser_cocci_menhir.ml"
+# 5964 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5978,9 +5982,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5984 "parser_cocci_menhir.ml"
+# 5988 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6002,9 +6006,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_or_meta_ident_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6008 "parser_cocci_menhir.ml"
+# 6012 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6026,9 +6030,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6032 "parser_cocci_menhir.ml"
+# 6036 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6050,9 +6054,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6056 "parser_cocci_menhir.ml"
+# 6060 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6074,9 +6078,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6080 "parser_cocci_menhir.ml"
+# 6084 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6098,9 +6102,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6104 "parser_cocci_menhir.ml"
+# 6108 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6122,9 +6126,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_seed_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6128 "parser_cocci_menhir.ml"
+# 6132 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6146,9 +6150,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_pos__ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6152 "parser_cocci_menhir.ml"
+# 6156 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6170,9 +6174,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_typedef_ident_ = 
-# 2309 "parser_cocci_menhir.mly"
+# 2345 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 6176 "parser_cocci_menhir.ml"
+# 6180 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6194,9 +6198,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cond_expr_eexpr_dot_expressions_ = 
-# 1499 "parser_cocci_menhir.mly"
+# 1534 "parser_cocci_menhir.mly"
                                              ( _1 )
-# 6200 "parser_cocci_menhir.ml"
+# 6204 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6234,26 +6238,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let r : 'tv_eexpr = Obj.magic r in
+        let r : 'tv_eargexpr = Obj.magic r in
         let dd : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6242 "parser_cocci_menhir.ml"
+# 6246 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6248 "parser_cocci_menhir.ml"
+# 6252 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
         let l : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_cond_expr_eexpr_dot_expressions_ = 
-# 1501 "parser_cocci_menhir.mly"
+# 1537 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
-# 6257 "parser_cocci_menhir.ml"
+# 6261 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6275,9 +6279,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cond_expr_eexpr_nest_expressions_ = 
-# 1499 "parser_cocci_menhir.mly"
+# 1534 "parser_cocci_menhir.mly"
                                              ( _1 )
-# 6281 "parser_cocci_menhir.ml"
+# 6285 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6315,26 +6319,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let r : 'tv_eexpr = Obj.magic r in
+        let r : 'tv_eargexpr = Obj.magic r in
         let dd : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6323 "parser_cocci_menhir.ml"
+# 6327 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6329 "parser_cocci_menhir.ml"
+# 6333 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
         let l : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_cond_expr_eexpr_nest_expressions_ = 
-# 1501 "parser_cocci_menhir.mly"
+# 1537 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
-# 6338 "parser_cocci_menhir.ml"
+# 6342 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6356,9 +6360,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cond_expr_expr_invalid_ = 
-# 1499 "parser_cocci_menhir.mly"
+# 1534 "parser_cocci_menhir.mly"
                                              ( _1 )
-# 6362 "parser_cocci_menhir.ml"
+# 6366 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6396,26 +6400,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let r : 'tv_eexpr = Obj.magic r in
+        let r : 'tv_eargexpr = Obj.magic r in
         let dd : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6404 "parser_cocci_menhir.ml"
+# 6408 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6410 "parser_cocci_menhir.ml"
+# 6414 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
         let l : 'tv_arith_expr_expr_invalid_ = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_cond_expr_expr_invalid_ = 
-# 1501 "parser_cocci_menhir.mly"
+# 1537 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
-# 6419 "parser_cocci_menhir.ml"
+# 6423 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6434,16 +6438,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 120 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
-# 6440 "parser_cocci_menhir.ml"
+# 6444 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_const_vol = 
-# 1094 "parser_cocci_menhir.mly"
+# 1097 "parser_cocci_menhir.mly"
                    ( P.clt2mcode Ast.Const _1 )
-# 6447 "parser_cocci_menhir.ml"
+# 6451 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6462,16 +6466,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 120 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
-# 6468 "parser_cocci_menhir.ml"
+# 6472 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_const_vol = 
-# 1095 "parser_cocci_menhir.mly"
+# 1098 "parser_cocci_menhir.mly"
                    ( P.clt2mcode Ast.Volatile _1 )
-# 6475 "parser_cocci_menhir.ml"
+# 6479 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6493,9 +6497,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2085 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 6499 "parser_cocci_menhir.ml"
+# 6503 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6519,18 +6523,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6525 "parser_cocci_menhir.ml"
+# 6529 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_aexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2087 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 6534 "parser_cocci_menhir.ml"
+# 6538 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6560,19 +6564,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6566 "parser_cocci_menhir.ml"
+# 6570 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_aexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2090 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 6576 "parser_cocci_menhir.ml"
+# 6580 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6598,9 +6602,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2093 "parser_cocci_menhir.mly"
+# 2129 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 6604 "parser_cocci_menhir.ml"
+# 6608 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6622,9 +6626,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2085 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 6628 "parser_cocci_menhir.ml"
+# 6632 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6648,18 +6652,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6654 "parser_cocci_menhir.ml"
+# 6658 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_dparam = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2087 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 6663 "parser_cocci_menhir.ml"
+# 6667 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6689,19 +6693,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6695 "parser_cocci_menhir.ml"
+# 6699 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_dparam = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2090 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 6705 "parser_cocci_menhir.ml"
+# 6709 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6727,9 +6731,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2093 "parser_cocci_menhir.mly"
+# 2129 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 6733 "parser_cocci_menhir.ml"
+# 6737 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6751,9 +6755,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2085 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 6757 "parser_cocci_menhir.ml"
+# 6761 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6777,18 +6781,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6783 "parser_cocci_menhir.ml"
+# 6787 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_enum_decl_one = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2087 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 6792 "parser_cocci_menhir.ml"
+# 6796 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6818,19 +6822,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6824 "parser_cocci_menhir.ml"
+# 6828 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_enum_decl_one = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2090 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 6834 "parser_cocci_menhir.ml"
+# 6838 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6856,9 +6860,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2093 "parser_cocci_menhir.mly"
+# 2129 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 6862 "parser_cocci_menhir.ml"
+# 6866 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6880,9 +6884,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2085 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 6886 "parser_cocci_menhir.ml"
+# 6890 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6906,18 +6910,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6912 "parser_cocci_menhir.ml"
+# 6916 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_initialize2 = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2087 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 6921 "parser_cocci_menhir.ml"
+# 6925 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6947,19 +6951,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6953 "parser_cocci_menhir.ml"
+# 6957 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_initialize2 = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2090 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 6963 "parser_cocci_menhir.ml"
+# 6967 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6985,9 +6989,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2093 "parser_cocci_menhir.mly"
+# 2129 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 6991 "parser_cocci_menhir.ml"
+# 6995 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7009,9 +7013,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2085 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 7015 "parser_cocci_menhir.ml"
+# 7019 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7035,18 +7039,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 7041 "parser_cocci_menhir.ml"
+# 7045 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2087 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 7050 "parser_cocci_menhir.ml"
+# 7054 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7076,19 +7080,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 7082 "parser_cocci_menhir.ml"
+# 7086 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2090 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 7092 "parser_cocci_menhir.ml"
+# 7096 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7114,9 +7118,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2093 "parser_cocci_menhir.mly"
+# 2129 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 7120 "parser_cocci_menhir.ml"
+# 7124 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7138,9 +7142,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2085 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 7144 "parser_cocci_menhir.ml"
+# 7148 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7164,18 +7168,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 7170 "parser_cocci_menhir.ml"
+# 7174 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2087 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 7179 "parser_cocci_menhir.ml"
+# 7183 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7205,19 +7209,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 7211 "parser_cocci_menhir.ml"
+# 7215 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2090 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 7221 "parser_cocci_menhir.ml"
+# 7225 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7243,9 +7247,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2093 "parser_cocci_menhir.mly"
+# 2129 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 7249 "parser_cocci_menhir.ml"
+# 7253 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7260,9 +7264,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_continue_struct_decl_list = 
-# 794 "parser_cocci_menhir.mly"
+# 797 "parser_cocci_menhir.mly"
                                      ( [] )
-# 7266 "parser_cocci_menhir.ml"
+# 7270 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7290,9 +7294,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_struct_decl_list = 
-# 795 "parser_cocci_menhir.mly"
+# 798 "parser_cocci_menhir.mly"
                                      ( _1@_2 )
-# 7296 "parser_cocci_menhir.ml"
+# 7300 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7314,9 +7318,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_struct_decl_list = 
-# 796 "parser_cocci_menhir.mly"
+# 799 "parser_cocci_menhir.mly"
                                      ( _1 )
-# 7320 "parser_cocci_menhir.ml"
+# 7324 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7346,14 +7350,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7352 "parser_cocci_menhir.ml"
+# 7356 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7357 "parser_cocci_menhir.ml"
+# 7361 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7363,28 +7367,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 7369 "parser_cocci_menhir.ml"
+# 7373 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7375 "parser_cocci_menhir.ml"
+# 7379 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7382 "parser_cocci_menhir.ml"
+# 7386 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7388 "parser_cocci_menhir.ml"
+# 7392 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7414,14 +7418,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7420 "parser_cocci_menhir.ml"
+# 7424 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7425 "parser_cocci_menhir.ml"
+# 7429 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7431,28 +7435,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 7437 "parser_cocci_menhir.ml"
+# 7441 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7443 "parser_cocci_menhir.ml"
+# 7447 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7450 "parser_cocci_menhir.ml"
+# 7454 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7456 "parser_cocci_menhir.ml"
+# 7460 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7487,19 +7491,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7493 "parser_cocci_menhir.ml"
+# 7497 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7498 "parser_cocci_menhir.ml"
+# 7502 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7503 "parser_cocci_menhir.ml"
+# 7507 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7511,30 +7515,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 7519 "parser_cocci_menhir.ml"
+# 7523 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7525 "parser_cocci_menhir.ml"
+# 7529 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7532 "parser_cocci_menhir.ml"
+# 7536 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7538 "parser_cocci_menhir.ml"
+# 7542 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7564,14 +7568,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7570 "parser_cocci_menhir.ml"
+# 7574 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7575 "parser_cocci_menhir.ml"
+# 7579 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7581,28 +7585,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 7587 "parser_cocci_menhir.ml"
+# 7591 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7593 "parser_cocci_menhir.ml"
+# 7597 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7600 "parser_cocci_menhir.ml"
+# 7604 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7606 "parser_cocci_menhir.ml"
+# 7610 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7632,14 +7636,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 7638 "parser_cocci_menhir.ml"
+# 7642 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7643 "parser_cocci_menhir.ml"
+# 7647 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7649,29 +7653,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 7656 "parser_cocci_menhir.ml"
+# 7660 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7662 "parser_cocci_menhir.ml"
+# 7666 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7669 "parser_cocci_menhir.ml"
+# 7673 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7675 "parser_cocci_menhir.ml"
+# 7679 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7710,19 +7714,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 7716 "parser_cocci_menhir.ml"
+# 7720 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 7721 "parser_cocci_menhir.ml"
+# 7725 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7726 "parser_cocci_menhir.ml"
+# 7730 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let _startpos = _startpos_r1_ in
         let _endpos = _endpos_m_ in
@@ -7734,33 +7738,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 7745 "parser_cocci_menhir.ml"
+# 7749 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7751 "parser_cocci_menhir.ml"
+# 7755 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7758 "parser_cocci_menhir.ml"
+# 7762 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7764 "parser_cocci_menhir.ml"
+# 7768 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7790,14 +7794,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7796 "parser_cocci_menhir.ml"
+# 7800 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7801 "parser_cocci_menhir.ml"
+# 7805 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7807,28 +7811,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 7813 "parser_cocci_menhir.ml"
+# 7817 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7819 "parser_cocci_menhir.ml"
+# 7823 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7826 "parser_cocci_menhir.ml"
+# 7830 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7832 "parser_cocci_menhir.ml"
+# 7836 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7863,19 +7867,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7869 "parser_cocci_menhir.ml"
+# 7873 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7874 "parser_cocci_menhir.ml"
+# 7878 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7879 "parser_cocci_menhir.ml"
+# 7883 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7887,30 +7891,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 7895 "parser_cocci_menhir.ml"
+# 7899 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7901 "parser_cocci_menhir.ml"
+# 7905 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7908 "parser_cocci_menhir.ml"
+# 7912 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7914 "parser_cocci_menhir.ml"
+# 7918 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7945,19 +7949,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7951 "parser_cocci_menhir.ml"
+# 7955 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7956 "parser_cocci_menhir.ml"
+# 7960 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 7961 "parser_cocci_menhir.ml"
+# 7965 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -7969,31 +7973,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 7978 "parser_cocci_menhir.ml"
+# 7982 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 7984 "parser_cocci_menhir.ml"
+# 7988 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7991 "parser_cocci_menhir.ml"
+# 7995 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 7997 "parser_cocci_menhir.ml"
+# 8001 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8033,24 +8037,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8039 "parser_cocci_menhir.ml"
+# 8043 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8044 "parser_cocci_menhir.ml"
+# 8048 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8049 "parser_cocci_menhir.ml"
+# 8053 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8054 "parser_cocci_menhir.ml"
+# 8058 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8064,32 +8068,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 8074 "parser_cocci_menhir.ml"
+# 8078 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 8080 "parser_cocci_menhir.ml"
+# 8084 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8087 "parser_cocci_menhir.ml"
+# 8091 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8093 "parser_cocci_menhir.ml"
+# 8097 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8119,14 +8123,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8125 "parser_cocci_menhir.ml"
+# 8129 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8130 "parser_cocci_menhir.ml"
+# 8134 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8136,28 +8140,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 8142 "parser_cocci_menhir.ml"
+# 8146 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8148 "parser_cocci_menhir.ml"
+# 8152 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8155 "parser_cocci_menhir.ml"
+# 8159 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8161 "parser_cocci_menhir.ml"
+# 8165 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8187,14 +8191,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8193 "parser_cocci_menhir.ml"
+# 8197 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8198 "parser_cocci_menhir.ml"
+# 8202 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8204,28 +8208,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 8210 "parser_cocci_menhir.ml"
+# 8214 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8216 "parser_cocci_menhir.ml"
+# 8220 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8223 "parser_cocci_menhir.ml"
+# 8227 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8229 "parser_cocci_menhir.ml"
+# 8233 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8260,19 +8264,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8266 "parser_cocci_menhir.ml"
+# 8270 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8271 "parser_cocci_menhir.ml"
+# 8275 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8276 "parser_cocci_menhir.ml"
+# 8280 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8284,30 +8288,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 8292 "parser_cocci_menhir.ml"
+# 8296 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8298 "parser_cocci_menhir.ml"
+# 8302 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8305 "parser_cocci_menhir.ml"
+# 8309 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8311 "parser_cocci_menhir.ml"
+# 8315 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8337,14 +8341,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8343 "parser_cocci_menhir.ml"
+# 8347 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8348 "parser_cocci_menhir.ml"
+# 8352 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8354,28 +8358,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 8360 "parser_cocci_menhir.ml"
+# 8364 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8366 "parser_cocci_menhir.ml"
+# 8370 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8373 "parser_cocci_menhir.ml"
+# 8377 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8379 "parser_cocci_menhir.ml"
+# 8383 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8405,14 +8409,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 8411 "parser_cocci_menhir.ml"
+# 8415 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8416 "parser_cocci_menhir.ml"
+# 8420 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8422,29 +8426,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 8429 "parser_cocci_menhir.ml"
+# 8433 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8435 "parser_cocci_menhir.ml"
+# 8439 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8442 "parser_cocci_menhir.ml"
+# 8446 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8448 "parser_cocci_menhir.ml"
+# 8452 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8483,19 +8487,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 8489 "parser_cocci_menhir.ml"
+# 8493 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 8494 "parser_cocci_menhir.ml"
+# 8498 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8499 "parser_cocci_menhir.ml"
+# 8503 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let _startpos = _startpos_r1_ in
         let _endpos = _endpos_m_ in
@@ -8507,33 +8511,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 8518 "parser_cocci_menhir.ml"
+# 8522 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8524 "parser_cocci_menhir.ml"
+# 8528 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8531 "parser_cocci_menhir.ml"
+# 8535 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8537 "parser_cocci_menhir.ml"
+# 8541 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8563,14 +8567,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8569 "parser_cocci_menhir.ml"
+# 8573 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8574 "parser_cocci_menhir.ml"
+# 8578 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8580,28 +8584,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 8586 "parser_cocci_menhir.ml"
+# 8590 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8592 "parser_cocci_menhir.ml"
+# 8596 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8599 "parser_cocci_menhir.ml"
+# 8603 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8605 "parser_cocci_menhir.ml"
+# 8609 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8636,19 +8640,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8642 "parser_cocci_menhir.ml"
+# 8646 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8647 "parser_cocci_menhir.ml"
+# 8651 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8652 "parser_cocci_menhir.ml"
+# 8656 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8660,30 +8664,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 8668 "parser_cocci_menhir.ml"
+# 8672 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8674 "parser_cocci_menhir.ml"
+# 8678 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8681 "parser_cocci_menhir.ml"
+# 8685 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8687 "parser_cocci_menhir.ml"
+# 8691 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8718,19 +8722,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8724 "parser_cocci_menhir.ml"
+# 8728 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8729 "parser_cocci_menhir.ml"
+# 8733 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8734 "parser_cocci_menhir.ml"
+# 8738 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8742,31 +8746,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 8751 "parser_cocci_menhir.ml"
+# 8755 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8757 "parser_cocci_menhir.ml"
+# 8761 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8764 "parser_cocci_menhir.ml"
+# 8768 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8770 "parser_cocci_menhir.ml"
+# 8774 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8806,24 +8810,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8812 "parser_cocci_menhir.ml"
+# 8816 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8817 "parser_cocci_menhir.ml"
+# 8821 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8822 "parser_cocci_menhir.ml"
+# 8826 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8827 "parser_cocci_menhir.ml"
+# 8831 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -8837,32 +8841,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 8847 "parser_cocci_menhir.ml"
+# 8851 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 8853 "parser_cocci_menhir.ml"
+# 8857 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8860 "parser_cocci_menhir.ml"
+# 8864 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8866 "parser_cocci_menhir.ml"
+# 8870 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8887,9 +8891,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8893 "parser_cocci_menhir.ml"
+# 8897 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -8898,28 +8902,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 8904 "parser_cocci_menhir.ml"
+# 8908 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 8910 "parser_cocci_menhir.ml"
+# 8914 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8917 "parser_cocci_menhir.ml"
+# 8921 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8923 "parser_cocci_menhir.ml"
+# 8927 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8944,9 +8948,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8950 "parser_cocci_menhir.ml"
+# 8954 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -8955,28 +8959,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 8961 "parser_cocci_menhir.ml"
+# 8965 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 8967 "parser_cocci_menhir.ml"
+# 8971 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8974 "parser_cocci_menhir.ml"
+# 8978 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 8980 "parser_cocci_menhir.ml"
+# 8984 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9006,14 +9010,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9012 "parser_cocci_menhir.ml"
+# 9016 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9017 "parser_cocci_menhir.ml"
+# 9021 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -9024,30 +9028,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 9032 "parser_cocci_menhir.ml"
+# 9036 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9038 "parser_cocci_menhir.ml"
+# 9042 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9045 "parser_cocci_menhir.ml"
+# 9049 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9051 "parser_cocci_menhir.ml"
+# 9055 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9072,9 +9076,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9078 "parser_cocci_menhir.ml"
+# 9082 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -9083,28 +9087,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 9089 "parser_cocci_menhir.ml"
+# 9093 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9095 "parser_cocci_menhir.ml"
+# 9099 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9102 "parser_cocci_menhir.ml"
+# 9106 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9108 "parser_cocci_menhir.ml"
+# 9112 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9129,9 +9133,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 9135 "parser_cocci_menhir.ml"
+# 9139 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let _startpos = _startpos_p00_ in
         let _endpos = _endpos_m_ in
@@ -9140,29 +9144,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 9147 "parser_cocci_menhir.ml"
+# 9151 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9153 "parser_cocci_menhir.ml"
+# 9157 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9160 "parser_cocci_menhir.ml"
+# 9164 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9166 "parser_cocci_menhir.ml"
+# 9170 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9196,14 +9200,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 9202 "parser_cocci_menhir.ml"
+# 9206 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 9207 "parser_cocci_menhir.ml"
+# 9211 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let _startpos = _startpos_r00_ in
         let _endpos = _endpos_m_ in
@@ -9214,33 +9218,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 9225 "parser_cocci_menhir.ml"
+# 9229 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9231 "parser_cocci_menhir.ml"
+# 9235 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9238 "parser_cocci_menhir.ml"
+# 9242 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9244 "parser_cocci_menhir.ml"
+# 9248 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9265,9 +9269,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9271 "parser_cocci_menhir.ml"
+# 9275 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -9276,28 +9280,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 9282 "parser_cocci_menhir.ml"
+# 9286 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9288 "parser_cocci_menhir.ml"
+# 9292 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9295 "parser_cocci_menhir.ml"
+# 9299 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9301 "parser_cocci_menhir.ml"
+# 9305 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9327,14 +9331,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9333 "parser_cocci_menhir.ml"
+# 9337 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9338 "parser_cocci_menhir.ml"
+# 9342 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -9345,30 +9349,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 9353 "parser_cocci_menhir.ml"
+# 9357 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9359 "parser_cocci_menhir.ml"
+# 9363 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9366 "parser_cocci_menhir.ml"
+# 9370 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9372 "parser_cocci_menhir.ml"
+# 9376 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9398,14 +9402,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9404 "parser_cocci_menhir.ml"
+# 9408 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9409 "parser_cocci_menhir.ml"
+# 9413 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -9416,31 +9420,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 9425 "parser_cocci_menhir.ml"
+# 9429 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9431 "parser_cocci_menhir.ml"
+# 9435 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9438 "parser_cocci_menhir.ml"
+# 9442 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9444 "parser_cocci_menhir.ml"
+# 9448 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9475,19 +9479,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9481 "parser_cocci_menhir.ml"
+# 9485 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9486 "parser_cocci_menhir.ml"
+# 9490 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9491 "parser_cocci_menhir.ml"
+# 9495 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -9500,32 +9504,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 9510 "parser_cocci_menhir.ml"
+# 9514 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 9516 "parser_cocci_menhir.ml"
+# 9520 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9523 "parser_cocci_menhir.ml"
+# 9527 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9529 "parser_cocci_menhir.ml"
+# 9533 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9550,9 +9554,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9556 "parser_cocci_menhir.ml"
+# 9560 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -9561,28 +9565,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 675 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
-# 9567 "parser_cocci_menhir.ml"
+# 9571 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9573 "parser_cocci_menhir.ml"
+# 9577 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9580 "parser_cocci_menhir.ml"
+# 9584 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9586 "parser_cocci_menhir.ml"
+# 9590 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9612,14 +9616,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9618 "parser_cocci_menhir.ml"
+# 9622 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9623 "parser_cocci_menhir.ml"
+# 9627 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -9630,31 +9634,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 677 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
            [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) )
-# 9639 "parser_cocci_menhir.ml"
+# 9643 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9645 "parser_cocci_menhir.ml"
+# 9649 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9652 "parser_cocci_menhir.ml"
+# 9656 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9658 "parser_cocci_menhir.ml"
+# 9662 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9679,9 +9683,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9685 "parser_cocci_menhir.ml"
+# 9689 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -9690,28 +9694,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 682 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
-# 9696 "parser_cocci_menhir.ml"
+# 9700 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9702 "parser_cocci_menhir.ml"
+# 9706 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9709 "parser_cocci_menhir.ml"
+# 9713 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9715 "parser_cocci_menhir.ml"
+# 9719 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9736,9 +9740,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9742 "parser_cocci_menhir.ml"
+# 9746 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -9747,28 +9751,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 684 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
-# 9753 "parser_cocci_menhir.ml"
+# 9757 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9759 "parser_cocci_menhir.ml"
+# 9763 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9766 "parser_cocci_menhir.ml"
+# 9770 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9772 "parser_cocci_menhir.ml"
+# 9776 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9793,9 +9797,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9799 "parser_cocci_menhir.ml"
+# 9803 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -9804,28 +9808,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 686 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
-# 9810 "parser_cocci_menhir.ml"
+# 9814 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9816 "parser_cocci_menhir.ml"
+# 9820 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9823 "parser_cocci_menhir.ml"
+# 9827 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9829 "parser_cocci_menhir.ml"
+# 9833 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9850,9 +9854,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9856 "parser_cocci_menhir.ml"
+# 9860 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -9861,28 +9865,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 688 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
-# 9867 "parser_cocci_menhir.ml"
+# 9871 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9873 "parser_cocci_menhir.ml"
+# 9877 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9880 "parser_cocci_menhir.ml"
+# 9884 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9886 "parser_cocci_menhir.ml"
+# 9890 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9907,9 +9911,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9913 "parser_cocci_menhir.ml"
+# 9917 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -9918,28 +9922,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 690 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
-# 9924 "parser_cocci_menhir.ml"
+# 9928 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9930 "parser_cocci_menhir.ml"
+# 9934 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 9937 "parser_cocci_menhir.ml"
+# 9941 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 9943 "parser_cocci_menhir.ml"
+# 9947 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9970,9 +9974,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let m : 'tv_list_TMul_ = Obj.magic m in
         let i00 : 'tv_ident = Obj.magic i00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 9976 "parser_cocci_menhir.ml"
+# 9980 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -9983,28 +9987,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 692 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
-# 9989 "parser_cocci_menhir.ml"
+# 9993 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 9995 "parser_cocci_menhir.ml"
+# 9999 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10002 "parser_cocci_menhir.ml"
+# 10006 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10008 "parser_cocci_menhir.ml"
+# 10012 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10044,20 +10048,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10050 "parser_cocci_menhir.ml"
+# 10054 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10056 "parser_cocci_menhir.ml"
+# 10060 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10061 "parser_cocci_menhir.ml"
+# 10065 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -10075,35 +10079,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 10079 "parser_cocci_menhir.ml"
+# 10083 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 10088 "parser_cocci_menhir.ml"
+# 10092 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 10094 "parser_cocci_menhir.ml"
+# 10098 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10101 "parser_cocci_menhir.ml"
+# 10105 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10107 "parser_cocci_menhir.ml"
+# 10111 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10148,21 +10152,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10154 "parser_cocci_menhir.ml"
+# 10158 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10160 "parser_cocci_menhir.ml"
+# 10164 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10166 "parser_cocci_menhir.ml"
+# 10170 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -10183,35 +10187,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 10187 "parser_cocci_menhir.ml"
+# 10191 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 10196 "parser_cocci_menhir.ml"
+# 10200 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 10202 "parser_cocci_menhir.ml"
+# 10206 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10209 "parser_cocci_menhir.ml"
+# 10213 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10215 "parser_cocci_menhir.ml"
+# 10219 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10251,28 +10255,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 699 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
-# 10257 "parser_cocci_menhir.ml"
+# 10261 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 10263 "parser_cocci_menhir.ml"
+# 10267 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10270 "parser_cocci_menhir.ml"
+# 10274 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10276 "parser_cocci_menhir.ml"
+# 10280 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10312,15 +10316,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10318 "parser_cocci_menhir.ml"
+# 10322 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10324 "parser_cocci_menhir.ml"
+# 10328 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
@@ -10339,36 +10343,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 10343 "parser_cocci_menhir.ml"
+# 10347 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 10353 "parser_cocci_menhir.ml"
+# 10357 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 10359 "parser_cocci_menhir.ml"
+# 10363 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10366 "parser_cocci_menhir.ml"
+# 10370 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10372 "parser_cocci_menhir.ml"
+# 10376 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10413,15 +10417,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10419 "parser_cocci_menhir.ml"
+# 10423 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10425 "parser_cocci_menhir.ml"
+# 10429 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_type_ident = Obj.magic x000 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
@@ -10444,36 +10448,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 10448 "parser_cocci_menhir.ml"
+# 10452 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 10458 "parser_cocci_menhir.ml"
+# 10462 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 10464 "parser_cocci_menhir.ml"
+# 10468 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10471 "parser_cocci_menhir.ml"
+# 10475 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10477 "parser_cocci_menhir.ml"
+# 10481 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10513,20 +10517,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10519 "parser_cocci_menhir.ml"
+# 10523 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10525 "parser_cocci_menhir.ml"
+# 10529 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 10530 "parser_cocci_menhir.ml"
+# 10534 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -10541,30 +10545,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 708 "parser_cocci_menhir.mly"
+# 711 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = s in
     let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
     Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
-# 10549 "parser_cocci_menhir.ml"
+# 10553 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 10555 "parser_cocci_menhir.ml"
+# 10559 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10562 "parser_cocci_menhir.ml"
+# 10566 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10568 "parser_cocci_menhir.ml"
+# 10572 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10589,9 +10593,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 10595 "parser_cocci_menhir.ml"
+# 10599 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let _startpos = _startpos_p00_ in
         let _endpos = _endpos_m_ in
@@ -10600,28 +10604,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 712 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
-# 10606 "parser_cocci_menhir.ml"
+# 10610 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 10612 "parser_cocci_menhir.ml"
+# 10616 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 10619 "parser_cocci_menhir.ml"
+# 10623 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10625 "parser_cocci_menhir.ml"
+# 10629 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10656,14 +10660,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10662 "parser_cocci_menhir.ml"
+# 10666 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10667 "parser_cocci_menhir.ml"
+# 10671 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -10674,15 +10678,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 10680 "parser_cocci_menhir.ml"
+# 10684 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 10686 "parser_cocci_menhir.ml"
+# 10690 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -10690,13 +10694,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 10694 "parser_cocci_menhir.ml"
+# 10698 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10700 "parser_cocci_menhir.ml"
+# 10704 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10731,14 +10735,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10737 "parser_cocci_menhir.ml"
+# 10741 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10742 "parser_cocci_menhir.ml"
+# 10746 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -10749,15 +10753,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 10755 "parser_cocci_menhir.ml"
+# 10759 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 10761 "parser_cocci_menhir.ml"
+# 10765 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -10765,13 +10769,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 10769 "parser_cocci_menhir.ml"
+# 10773 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10775 "parser_cocci_menhir.ml"
+# 10779 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10811,19 +10815,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10817 "parser_cocci_menhir.ml"
+# 10821 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10822 "parser_cocci_menhir.ml"
+# 10826 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10827 "parser_cocci_menhir.ml"
+# 10831 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -10836,17 +10840,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 10844 "parser_cocci_menhir.ml"
+# 10848 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 10850 "parser_cocci_menhir.ml"
+# 10854 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -10854,13 +10858,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 10858 "parser_cocci_menhir.ml"
+# 10862 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10864 "parser_cocci_menhir.ml"
+# 10868 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10895,14 +10899,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10901 "parser_cocci_menhir.ml"
+# 10905 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10906 "parser_cocci_menhir.ml"
+# 10910 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -10913,15 +10917,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 10919 "parser_cocci_menhir.ml"
+# 10923 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 10925 "parser_cocci_menhir.ml"
+# 10929 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -10929,13 +10933,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 10933 "parser_cocci_menhir.ml"
+# 10937 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 10939 "parser_cocci_menhir.ml"
+# 10943 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10970,14 +10974,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 10976 "parser_cocci_menhir.ml"
+# 10980 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 10981 "parser_cocci_menhir.ml"
+# 10985 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -10988,16 +10992,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 10995 "parser_cocci_menhir.ml"
+# 10999 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 11001 "parser_cocci_menhir.ml"
+# 11005 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11005,13 +11009,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11009 "parser_cocci_menhir.ml"
+# 11013 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11015 "parser_cocci_menhir.ml"
+# 11019 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11055,19 +11059,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 11061 "parser_cocci_menhir.ml"
+# 11065 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 11066 "parser_cocci_menhir.ml"
+# 11070 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11071 "parser_cocci_menhir.ml"
+# 11075 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11080,20 +11084,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 11091 "parser_cocci_menhir.ml"
+# 11095 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 11097 "parser_cocci_menhir.ml"
+# 11101 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11101,13 +11105,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11105 "parser_cocci_menhir.ml"
+# 11109 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11111 "parser_cocci_menhir.ml"
+# 11115 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11142,14 +11146,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11148 "parser_cocci_menhir.ml"
+# 11152 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11153 "parser_cocci_menhir.ml"
+# 11157 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11160,15 +11164,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 11166 "parser_cocci_menhir.ml"
+# 11170 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 11172 "parser_cocci_menhir.ml"
+# 11176 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11176,13 +11180,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11180 "parser_cocci_menhir.ml"
+# 11184 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11186 "parser_cocci_menhir.ml"
+# 11190 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11222,19 +11226,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11228 "parser_cocci_menhir.ml"
+# 11232 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11233 "parser_cocci_menhir.ml"
+# 11237 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11238 "parser_cocci_menhir.ml"
+# 11242 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11247,17 +11251,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 11255 "parser_cocci_menhir.ml"
+# 11259 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 11261 "parser_cocci_menhir.ml"
+# 11265 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11265,13 +11269,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11269 "parser_cocci_menhir.ml"
+# 11273 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11275 "parser_cocci_menhir.ml"
+# 11279 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11311,19 +11315,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11317 "parser_cocci_menhir.ml"
+# 11321 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11322 "parser_cocci_menhir.ml"
+# 11326 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11327 "parser_cocci_menhir.ml"
+# 11331 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11336,18 +11340,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 11345 "parser_cocci_menhir.ml"
+# 11349 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 11351 "parser_cocci_menhir.ml"
+# 11355 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11355,13 +11359,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11359 "parser_cocci_menhir.ml"
+# 11363 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11365 "parser_cocci_menhir.ml"
+# 11369 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11406,24 +11410,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11412 "parser_cocci_menhir.ml"
+# 11416 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11417 "parser_cocci_menhir.ml"
+# 11421 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11422 "parser_cocci_menhir.ml"
+# 11426 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11427 "parser_cocci_menhir.ml"
+# 11431 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11438,19 +11442,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 11448 "parser_cocci_menhir.ml"
+# 11452 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 11454 "parser_cocci_menhir.ml"
+# 11458 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11458,13 +11462,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11462 "parser_cocci_menhir.ml"
+# 11466 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11468 "parser_cocci_menhir.ml"
+# 11472 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11499,14 +11503,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11505 "parser_cocci_menhir.ml"
+# 11509 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11510 "parser_cocci_menhir.ml"
+# 11514 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11517,15 +11521,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 11523 "parser_cocci_menhir.ml"
+# 11527 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 11529 "parser_cocci_menhir.ml"
+# 11533 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11533,13 +11537,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11537 "parser_cocci_menhir.ml"
+# 11541 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11543 "parser_cocci_menhir.ml"
+# 11547 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11574,14 +11578,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11580 "parser_cocci_menhir.ml"
+# 11584 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11585 "parser_cocci_menhir.ml"
+# 11589 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11592,15 +11596,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 11598 "parser_cocci_menhir.ml"
+# 11602 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 11604 "parser_cocci_menhir.ml"
+# 11608 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11608,13 +11612,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11612 "parser_cocci_menhir.ml"
+# 11616 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11618 "parser_cocci_menhir.ml"
+# 11622 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11654,19 +11658,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11660 "parser_cocci_menhir.ml"
+# 11664 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11665 "parser_cocci_menhir.ml"
+# 11669 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11670 "parser_cocci_menhir.ml"
+# 11674 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11679,17 +11683,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 11687 "parser_cocci_menhir.ml"
+# 11691 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 11693 "parser_cocci_menhir.ml"
+# 11697 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11697,13 +11701,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11701 "parser_cocci_menhir.ml"
+# 11705 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11707 "parser_cocci_menhir.ml"
+# 11711 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11738,14 +11742,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11744 "parser_cocci_menhir.ml"
+# 11748 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11749 "parser_cocci_menhir.ml"
+# 11753 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11756,15 +11760,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 11762 "parser_cocci_menhir.ml"
+# 11766 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 11768 "parser_cocci_menhir.ml"
+# 11772 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11772,13 +11776,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11776 "parser_cocci_menhir.ml"
+# 11780 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11782 "parser_cocci_menhir.ml"
+# 11786 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11813,14 +11817,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 11819 "parser_cocci_menhir.ml"
+# 11823 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11824 "parser_cocci_menhir.ml"
+# 11828 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11831,16 +11835,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 11838 "parser_cocci_menhir.ml"
+# 11842 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 11844 "parser_cocci_menhir.ml"
+# 11848 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11848,13 +11852,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11852 "parser_cocci_menhir.ml"
+# 11856 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11858 "parser_cocci_menhir.ml"
+# 11862 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11898,19 +11902,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 11904 "parser_cocci_menhir.ml"
+# 11908 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 11909 "parser_cocci_menhir.ml"
+# 11913 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11914 "parser_cocci_menhir.ml"
+# 11918 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -11923,20 +11927,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 11934 "parser_cocci_menhir.ml"
+# 11938 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 11940 "parser_cocci_menhir.ml"
+# 11944 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -11944,13 +11948,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 11948 "parser_cocci_menhir.ml"
+# 11952 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 11954 "parser_cocci_menhir.ml"
+# 11958 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11985,14 +11989,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11991 "parser_cocci_menhir.ml"
+# 11995 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11996 "parser_cocci_menhir.ml"
+# 12000 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12003,15 +12007,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 12009 "parser_cocci_menhir.ml"
+# 12013 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 12015 "parser_cocci_menhir.ml"
+# 12019 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12019,13 +12023,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12023 "parser_cocci_menhir.ml"
+# 12027 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12029 "parser_cocci_menhir.ml"
+# 12033 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12065,19 +12069,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12071 "parser_cocci_menhir.ml"
+# 12075 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12076 "parser_cocci_menhir.ml"
+# 12080 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12081 "parser_cocci_menhir.ml"
+# 12085 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12090,17 +12094,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 12098 "parser_cocci_menhir.ml"
+# 12102 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 12104 "parser_cocci_menhir.ml"
+# 12108 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12108,13 +12112,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12112 "parser_cocci_menhir.ml"
+# 12116 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12118 "parser_cocci_menhir.ml"
+# 12122 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12154,19 +12158,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12160 "parser_cocci_menhir.ml"
+# 12164 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12165 "parser_cocci_menhir.ml"
+# 12169 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12170 "parser_cocci_menhir.ml"
+# 12174 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12179,18 +12183,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 12188 "parser_cocci_menhir.ml"
+# 12192 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 12194 "parser_cocci_menhir.ml"
+# 12198 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12198,13 +12202,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12202 "parser_cocci_menhir.ml"
+# 12206 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12208 "parser_cocci_menhir.ml"
+# 12212 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12249,24 +12253,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12255 "parser_cocci_menhir.ml"
+# 12259 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12260 "parser_cocci_menhir.ml"
+# 12264 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12265 "parser_cocci_menhir.ml"
+# 12269 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12270 "parser_cocci_menhir.ml"
+# 12274 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12281,19 +12285,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 12291 "parser_cocci_menhir.ml"
+# 12295 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 12297 "parser_cocci_menhir.ml"
+# 12301 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12301,13 +12305,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12305 "parser_cocci_menhir.ml"
+# 12309 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12311 "parser_cocci_menhir.ml"
+# 12315 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12337,9 +12341,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12343 "parser_cocci_menhir.ml"
+# 12347 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12349,15 +12353,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 12355 "parser_cocci_menhir.ml"
+# 12359 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12361 "parser_cocci_menhir.ml"
+# 12365 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12365,13 +12369,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12369 "parser_cocci_menhir.ml"
+# 12373 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12375 "parser_cocci_menhir.ml"
+# 12379 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12401,9 +12405,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12407 "parser_cocci_menhir.ml"
+# 12411 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12413,15 +12417,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 12419 "parser_cocci_menhir.ml"
+# 12423 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12425 "parser_cocci_menhir.ml"
+# 12429 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12429,13 +12433,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12433 "parser_cocci_menhir.ml"
+# 12437 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12439 "parser_cocci_menhir.ml"
+# 12443 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12470,14 +12474,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12476 "parser_cocci_menhir.ml"
+# 12480 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12481 "parser_cocci_menhir.ml"
+# 12485 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12489,17 +12493,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 12497 "parser_cocci_menhir.ml"
+# 12501 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12503 "parser_cocci_menhir.ml"
+# 12507 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12507,13 +12511,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12511 "parser_cocci_menhir.ml"
+# 12515 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12517 "parser_cocci_menhir.ml"
+# 12521 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12543,9 +12547,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12549 "parser_cocci_menhir.ml"
+# 12553 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12555,15 +12559,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 12561 "parser_cocci_menhir.ml"
+# 12565 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12567 "parser_cocci_menhir.ml"
+# 12571 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12571,13 +12575,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12575 "parser_cocci_menhir.ml"
+# 12579 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12581 "parser_cocci_menhir.ml"
+# 12585 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12607,9 +12611,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 12613 "parser_cocci_menhir.ml"
+# 12617 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12619,16 +12623,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 12626 "parser_cocci_menhir.ml"
+# 12630 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12632 "parser_cocci_menhir.ml"
+# 12636 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12636,13 +12640,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12640 "parser_cocci_menhir.ml"
+# 12644 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12646 "parser_cocci_menhir.ml"
+# 12650 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12681,14 +12685,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 12687 "parser_cocci_menhir.ml"
+# 12691 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 12692 "parser_cocci_menhir.ml"
+# 12696 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12700,20 +12704,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 12711 "parser_cocci_menhir.ml"
+# 12715 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12717 "parser_cocci_menhir.ml"
+# 12721 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12721,13 +12725,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12725 "parser_cocci_menhir.ml"
+# 12729 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12731 "parser_cocci_menhir.ml"
+# 12735 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12757,9 +12761,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12763 "parser_cocci_menhir.ml"
+# 12767 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12769,15 +12773,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 12775 "parser_cocci_menhir.ml"
+# 12779 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12781 "parser_cocci_menhir.ml"
+# 12785 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12785,13 +12789,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12789 "parser_cocci_menhir.ml"
+# 12793 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12795 "parser_cocci_menhir.ml"
+# 12799 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12826,14 +12830,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12832 "parser_cocci_menhir.ml"
+# 12836 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12837 "parser_cocci_menhir.ml"
+# 12841 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12845,17 +12849,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 12853 "parser_cocci_menhir.ml"
+# 12857 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12859 "parser_cocci_menhir.ml"
+# 12863 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12863,13 +12867,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12867 "parser_cocci_menhir.ml"
+# 12871 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12873 "parser_cocci_menhir.ml"
+# 12877 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12904,14 +12908,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12910 "parser_cocci_menhir.ml"
+# 12914 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12915 "parser_cocci_menhir.ml"
+# 12919 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -12923,18 +12927,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 12932 "parser_cocci_menhir.ml"
+# 12936 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 12938 "parser_cocci_menhir.ml"
+# 12942 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -12942,13 +12946,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 12946 "parser_cocci_menhir.ml"
+# 12950 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 12952 "parser_cocci_menhir.ml"
+# 12956 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12988,19 +12992,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12994 "parser_cocci_menhir.ml"
+# 12998 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 12999 "parser_cocci_menhir.ml"
+# 13003 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13004 "parser_cocci_menhir.ml"
+# 13008 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13014,19 +13018,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 13024 "parser_cocci_menhir.ml"
+# 13028 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 13030 "parser_cocci_menhir.ml"
+# 13034 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13034,13 +13038,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13038 "parser_cocci_menhir.ml"
+# 13042 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13044 "parser_cocci_menhir.ml"
+# 13048 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13070,9 +13074,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13076 "parser_cocci_menhir.ml"
+# 13080 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13082,15 +13086,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 675 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
-# 13088 "parser_cocci_menhir.ml"
+# 13092 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13094 "parser_cocci_menhir.ml"
+# 13098 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13098,13 +13102,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13102 "parser_cocci_menhir.ml"
+# 13106 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13108 "parser_cocci_menhir.ml"
+# 13112 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13139,14 +13143,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13145 "parser_cocci_menhir.ml"
+# 13149 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13150 "parser_cocci_menhir.ml"
+# 13154 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13158,18 +13162,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 677 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
            [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) )
-# 13167 "parser_cocci_menhir.ml"
+# 13171 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13173 "parser_cocci_menhir.ml"
+# 13177 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13177,13 +13181,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13181 "parser_cocci_menhir.ml"
+# 13185 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13187 "parser_cocci_menhir.ml"
+# 13191 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13213,9 +13217,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13219 "parser_cocci_menhir.ml"
+# 13223 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13225,15 +13229,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 682 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
-# 13231 "parser_cocci_menhir.ml"
+# 13235 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13237 "parser_cocci_menhir.ml"
+# 13241 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13241,13 +13245,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13245 "parser_cocci_menhir.ml"
+# 13249 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13251 "parser_cocci_menhir.ml"
+# 13255 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13277,9 +13281,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13283 "parser_cocci_menhir.ml"
+# 13287 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13289,15 +13293,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 684 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
-# 13295 "parser_cocci_menhir.ml"
+# 13299 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13301 "parser_cocci_menhir.ml"
+# 13305 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13305,13 +13309,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13309 "parser_cocci_menhir.ml"
+# 13313 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13315 "parser_cocci_menhir.ml"
+# 13319 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13341,9 +13345,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13347 "parser_cocci_menhir.ml"
+# 13351 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13353,15 +13357,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 686 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
-# 13359 "parser_cocci_menhir.ml"
+# 13363 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13365 "parser_cocci_menhir.ml"
+# 13369 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13369,13 +13373,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13373 "parser_cocci_menhir.ml"
+# 13377 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13379 "parser_cocci_menhir.ml"
+# 13383 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13405,9 +13409,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13411 "parser_cocci_menhir.ml"
+# 13415 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13417,15 +13421,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 688 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
-# 13423 "parser_cocci_menhir.ml"
+# 13427 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13429 "parser_cocci_menhir.ml"
+# 13433 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13433,13 +13437,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13437 "parser_cocci_menhir.ml"
+# 13441 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13443 "parser_cocci_menhir.ml"
+# 13447 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13469,9 +13473,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13475 "parser_cocci_menhir.ml"
+# 13479 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13481,15 +13485,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 690 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
-# 13487 "parser_cocci_menhir.ml"
+# 13491 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13493 "parser_cocci_menhir.ml"
+# 13497 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13497,13 +13501,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13501 "parser_cocci_menhir.ml"
+# 13505 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13507 "parser_cocci_menhir.ml"
+# 13511 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13539,9 +13543,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let m : 'tv_list_TMul_ = Obj.magic m in
         let i00 : 'tv_ident = Obj.magic i00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13545 "parser_cocci_menhir.ml"
+# 13549 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13553,15 +13557,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 692 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
-# 13559 "parser_cocci_menhir.ml"
+# 13563 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13565 "parser_cocci_menhir.ml"
+# 13569 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13569,13 +13573,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13573 "parser_cocci_menhir.ml"
+# 13577 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13579 "parser_cocci_menhir.ml"
+# 13583 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13620,20 +13624,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 13626 "parser_cocci_menhir.ml"
+# 13630 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 13632 "parser_cocci_menhir.ml"
+# 13636 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13637 "parser_cocci_menhir.ml"
+# 13641 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13652,22 +13656,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 13656 "parser_cocci_menhir.ml"
+# 13660 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 13665 "parser_cocci_menhir.ml"
+# 13669 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13671 "parser_cocci_menhir.ml"
+# 13675 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13675,13 +13679,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13679 "parser_cocci_menhir.ml"
+# 13683 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13685 "parser_cocci_menhir.ml"
+# 13689 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13731,21 +13735,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 13737 "parser_cocci_menhir.ml"
+# 13741 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 13743 "parser_cocci_menhir.ml"
+# 13747 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 13749 "parser_cocci_menhir.ml"
+# 13753 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -13767,22 +13771,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 13771 "parser_cocci_menhir.ml"
+# 13775 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 13780 "parser_cocci_menhir.ml"
+# 13784 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13786 "parser_cocci_menhir.ml"
+# 13790 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13790,13 +13794,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13794 "parser_cocci_menhir.ml"
+# 13798 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13800 "parser_cocci_menhir.ml"
+# 13804 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13842,15 +13846,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 699 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
-# 13848 "parser_cocci_menhir.ml"
+# 13852 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13854 "parser_cocci_menhir.ml"
+# 13858 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13858,13 +13862,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13862 "parser_cocci_menhir.ml"
+# 13866 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13868 "parser_cocci_menhir.ml"
+# 13872 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13909,15 +13913,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 13915 "parser_cocci_menhir.ml"
+# 13919 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 13921 "parser_cocci_menhir.ml"
+# 13925 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
@@ -13937,23 +13941,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 13941 "parser_cocci_menhir.ml"
+# 13945 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 13951 "parser_cocci_menhir.ml"
+# 13955 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 13957 "parser_cocci_menhir.ml"
+# 13961 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -13961,13 +13965,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 13965 "parser_cocci_menhir.ml"
+# 13969 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 13971 "parser_cocci_menhir.ml"
+# 13975 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14017,15 +14021,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14023 "parser_cocci_menhir.ml"
+# 14027 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14029 "parser_cocci_menhir.ml"
+# 14033 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_type_ident = Obj.magic x000 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
@@ -14049,23 +14053,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 14053 "parser_cocci_menhir.ml"
+# 14057 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 14063 "parser_cocci_menhir.ml"
+# 14067 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 14069 "parser_cocci_menhir.ml"
+# 14073 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -14073,13 +14077,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 14077 "parser_cocci_menhir.ml"
+# 14081 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 14083 "parser_cocci_menhir.ml"
+# 14087 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14124,20 +14128,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14130 "parser_cocci_menhir.ml"
+# 14134 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14136 "parser_cocci_menhir.ml"
+# 14140 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 14141 "parser_cocci_menhir.ml"
+# 14145 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -14153,17 +14157,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 708 "parser_cocci_menhir.mly"
+# 711 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = s in
     let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
     Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
-# 14161 "parser_cocci_menhir.ml"
+# 14165 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 14167 "parser_cocci_menhir.ml"
+# 14171 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -14171,13 +14175,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 14175 "parser_cocci_menhir.ml"
+# 14179 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 14181 "parser_cocci_menhir.ml"
+# 14185 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14207,9 +14211,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 14213 "parser_cocci_menhir.ml"
+# 14217 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -14219,15 +14223,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 712 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
-# 14225 "parser_cocci_menhir.ml"
+# 14229 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 14231 "parser_cocci_menhir.ml"
+# 14235 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -14235,13 +14239,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 14239 "parser_cocci_menhir.ml"
+# 14243 "parser_cocci_menhir.ml"
           
         in
         
-# 725 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 14245 "parser_cocci_menhir.ml"
+# 14249 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14260,16 +14264,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let r : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 14266 "parser_cocci_menhir.ml"
+# 14270 "parser_cocci_menhir.ml"
         ) = Obj.magic r in
         let _startpos = _startpos_r_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_ctype = 
-# 727 "parser_cocci_menhir.mly"
+# 730 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,None)) )
-# 14273 "parser_cocci_menhir.ml"
+# 14277 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14288,16 +14292,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let r : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 14294 "parser_cocci_menhir.ml"
+# 14298 "parser_cocci_menhir.ml"
         ) = Obj.magic r in
         let _startpos = _startpos_r_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_ctype = 
-# 729 "parser_cocci_menhir.mly"
+# 732 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,None)) )
-# 14301 "parser_cocci_menhir.ml"
+# 14305 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14326,24 +14330,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14332 "parser_cocci_menhir.ml"
+# 14336 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14338 "parser_cocci_menhir.ml"
+# 14342 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_ctype = 
-# 731 "parser_cocci_menhir.mly"
+# 734 "parser_cocci_menhir.mly"
     ( let (mids,code) = t in
       Ast0.wrap
        (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
-# 14347 "parser_cocci_menhir.ml"
+# 14351 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14371,9 +14375,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_d_ident = 
-# 1315 "parser_cocci_menhir.mly"
+# 1339 "parser_cocci_menhir.mly"
       ( (_1, function t -> P.arrayify t _2) )
-# 14377 "parser_cocci_menhir.ml"
+# 14381 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_dargexpr = 
+# 1476 "parser_cocci_menhir.mly"
+                                             ( _1 )
+# 14405 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14407,9 +14435,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_a_ in
         let _v : 'tv_decl = 
-# 1067 "parser_cocci_menhir.mly"
+# 1070 "parser_cocci_menhir.mly"
  ( let t = P.arrayify t a in Ast0.wrap(Ast0.Param(t, Some i)) )
-# 14413 "parser_cocci_menhir.ml"
+# 14441 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14431,9 +14459,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_decl = 
-# 1068 "parser_cocci_menhir.mly"
+# 1071 "parser_cocci_menhir.mly"
               ( (*verify in FunDecl*) Ast0.wrap(Ast0.Param(t, None)) )
-# 14437 "parser_cocci_menhir.ml"
+# 14465 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14487,44 +14515,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14493 "parser_cocci_menhir.ml"
+# 14521 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14499 "parser_cocci_menhir.ml"
+# 14527 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14504 "parser_cocci_menhir.ml"
+# 14532 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let i : 'tv_disj_ident = Obj.magic i in
         let s : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14510 "parser_cocci_menhir.ml"
+# 14538 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14515 "parser_cocci_menhir.ml"
+# 14543 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_rp1_ in
         let _v : 'tv_decl = 
-# 1071 "parser_cocci_menhir.mly"
+# 1074 "parser_cocci_menhir.mly"
         ( let fnptr =
          Ast0.wrap
            (Ast0.FunctionPointer
               (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp,
                P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in
        Ast0.wrap(Ast0.Param(fnptr, Some i)) )
-# 14528 "parser_cocci_menhir.ml"
+# 14556 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14543,17 +14571,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 14549 "parser_cocci_menhir.ml"
+# 14577 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl = 
-# 1078 "parser_cocci_menhir.mly"
+# 1081 "parser_cocci_menhir.mly"
  ( let (nm,pure,clt) = _1 in
        Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) )
-# 14557 "parser_cocci_menhir.ml"
+# 14585 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14572,16 +14600,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 14578 "parser_cocci_menhir.ml"
+# 14606 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl = 
-# 1080 "parser_cocci_menhir.mly"
+# 1083 "parser_cocci_menhir.mly"
             ( tmeta_to_param _1 )
-# 14585 "parser_cocci_menhir.ml"
+# 14613 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14600,16 +14628,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 14606 "parser_cocci_menhir.ml"
+# 14634 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_ident = 
-# 2009 "parser_cocci_menhir.mly"
+# 2045 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 14613 "parser_cocci_menhir.ml"
+# 14641 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14628,17 +14656,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 130 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 14634 "parser_cocci_menhir.ml"
+# 14662 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_ident = 
-# 2011 "parser_cocci_menhir.mly"
+# 2047 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,Ast.NoVal,pure)) )
-# 14642 "parser_cocci_menhir.ml"
+# 14670 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14660,13 +14688,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_list_decl_ = 
-# 2033 "parser_cocci_menhir.mly"
+# 2069 "parser_cocci_menhir.mly"
      ( Ast0.wrap
         (Ast0.DOTS
            (_1
               (fun _ d -> Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." d)))
               (fun c -> Ast0.PComma c))) )
-# 14670 "parser_cocci_menhir.ml"
+# 14698 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14688,13 +14716,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_list_name_opt_decl_ = 
-# 2033 "parser_cocci_menhir.mly"
+# 2069 "parser_cocci_menhir.mly"
      ( Ast0.wrap
         (Ast0.DOTS
            (_1
               (fun _ d -> Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." d)))
               (fun c -> Ast0.PComma c))) )
-# 14698 "parser_cocci_menhir.ml"
+# 14726 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14713,17 +14741,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 14719 "parser_cocci_menhir.ml"
+# 14747 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement = 
-# 1378 "parser_cocci_menhir.mly"
+# 1402 "parser_cocci_menhir.mly"
       ( let (nm,pure,clt) = _1 in
       [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
-# 14727 "parser_cocci_menhir.ml"
+# 14755 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14745,13 +14773,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement = 
-# 1381 "parser_cocci_menhir.mly"
+# 1405 "parser_cocci_menhir.mly"
       ( List.map
          (function x ->
            Ast0.wrap
              (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x)))
          _1 )
-# 14755 "parser_cocci_menhir.ml"
+# 14783 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14773,9 +14801,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement = 
-# 1386 "parser_cocci_menhir.mly"
+# 1410 "parser_cocci_menhir.mly"
               ( [_1] )
-# 14779 "parser_cocci_menhir.ml"
+# 14807 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14804,20 +14832,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14810 "parser_cocci_menhir.ml"
+# 14838 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14816 "parser_cocci_menhir.ml"
+# 14844 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_decl_statement = 
-# 1395 "parser_cocci_menhir.mly"
+# 1419 "parser_cocci_menhir.mly"
       ( let (mids,code) = t in
        if List.for_all
            (function x ->
@@ -14827,7 +14855,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       else
          [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, code, mids,
                               P.clt2mcode ")" _3))] )
-# 14831 "parser_cocci_menhir.ml"
+# 14859 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14846,17 +14874,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 14852 "parser_cocci_menhir.ml"
+# 14880 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement_expr = 
-# 1408 "parser_cocci_menhir.mly"
+# 1432 "parser_cocci_menhir.mly"
       ( let (nm,pure,clt) = _1 in
       [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
-# 14860 "parser_cocci_menhir.ml"
+# 14888 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14878,13 +14906,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement_expr = 
-# 1411 "parser_cocci_menhir.mly"
+# 1435 "parser_cocci_menhir.mly"
       ( List.map
          (function x ->
            Ast0.wrap
              (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x)))
          _1 )
-# 14888 "parser_cocci_menhir.ml"
+# 14916 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14906,9 +14934,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement_expr = 
-# 1416 "parser_cocci_menhir.mly"
+# 1440 "parser_cocci_menhir.mly"
               ( [_1] )
-# 14912 "parser_cocci_menhir.ml"
+# 14940 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14937,20 +14965,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14943 "parser_cocci_menhir.ml"
+# 14971 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let t : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = Obj.magic t in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14949 "parser_cocci_menhir.ml"
+# 14977 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_decl_statement_expr = 
-# 1425 "parser_cocci_menhir.mly"
+# 1449 "parser_cocci_menhir.mly"
       ( let (mids,code) = t in
        if List.for_all (function [] -> true | _ -> false) code
       then []
@@ -14959,7 +14987,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
            List.map (function x -> Ast0.wrap(Ast0.DOTS x)) code in
          [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, dot_code, mids,
                               P.clt2mcode ")" _3))] )
-# 14963 "parser_cocci_menhir.ml"
+# 14991 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14983,17 +15011,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 14989 "parser_cocci_menhir.ml"
+# 15017 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_decl_var = 
-# 1201 "parser_cocci_menhir.mly"
+# 1213 "parser_cocci_menhir.mly"
       ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] )
-# 14997 "parser_cocci_menhir.ml"
+# 15025 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15012,16 +15040,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 15018 "parser_cocci_menhir.ml"
+# 15046 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_var = 
-# 1202 "parser_cocci_menhir.mly"
+# 1214 "parser_cocci_menhir.mly"
               ( [P.meta_decl _1] )
-# 15025 "parser_cocci_menhir.ml"
+# 15053 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15050,9 +15078,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15056 "parser_cocci_menhir.ml"
+# 15084 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_comma_list_d_ident_ = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -15062,16 +15090,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 15066 "parser_cocci_menhir.ml"
+# 15094 "parser_cocci_menhir.ml"
           
         in
         
-# 1204 "parser_cocci_menhir.mly"
+# 1216 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
          d )
-# 15075 "parser_cocci_menhir.ml"
+# 15103 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15105,9 +15133,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15111 "parser_cocci_menhir.ml"
+# 15139 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_comma_list_d_ident_ = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -15119,16 +15147,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15123 "parser_cocci_menhir.ml"
+# 15151 "parser_cocci_menhir.ml"
           
         in
         
-# 1204 "parser_cocci_menhir.mly"
+# 1216 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
          d )
-# 15132 "parser_cocci_menhir.ml"
+# 15160 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15150,9 +15178,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_f_ in
         let _v : 'tv_decl_var = 
-# 1208 "parser_cocci_menhir.mly"
+# 1220 "parser_cocci_menhir.mly"
                ( [f] )
-# 15156 "parser_cocci_menhir.ml"
+# 15184 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15191,15 +15219,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15197 "parser_cocci_menhir.ml"
+# 15225 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15203 "parser_cocci_menhir.ml"
+# 15231 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -15209,14 +15237,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 15213 "parser_cocci_menhir.ml"
+# 15241 "parser_cocci_menhir.ml"
           
         in
         
-# 1210 "parser_cocci_menhir.mly"
+# 1222 "parser_cocci_menhir.mly"
       (let (id,fn) = d in
       [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 15220 "parser_cocci_menhir.ml"
+# 15248 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15260,15 +15288,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15266 "parser_cocci_menhir.ml"
+# 15294 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15272 "parser_cocci_menhir.ml"
+# 15300 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -15280,14 +15308,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15284 "parser_cocci_menhir.ml"
+# 15312 "parser_cocci_menhir.ml"
           
         in
         
-# 1210 "parser_cocci_menhir.mly"
+# 1222 "parser_cocci_menhir.mly"
       (let (id,fn) = d in
       [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 15291 "parser_cocci_menhir.ml"
+# 15319 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15316,9 +15344,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15322 "parser_cocci_menhir.ml"
+# 15350 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_comma_list_d_ident_ = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15328,25 +15356,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 15332 "parser_cocci_menhir.ml"
+# 15360 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 15339 "parser_cocci_menhir.ml"
+# 15367 "parser_cocci_menhir.ml"
           
         in
         
-# 1215 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
              P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
            Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
          d )
-# 15350 "parser_cocci_menhir.ml"
+# 15378 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15380,9 +15408,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15386 "parser_cocci_menhir.ml"
+# 15414 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_comma_list_d_ident_ = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15394,25 +15422,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15398 "parser_cocci_menhir.ml"
+# 15426 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 15405 "parser_cocci_menhir.ml"
+# 15433 "parser_cocci_menhir.ml"
           
         in
         
-# 1215 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
              P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
            Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
          d )
-# 15416 "parser_cocci_menhir.ml"
+# 15444 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15446,9 +15474,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15452 "parser_cocci_menhir.ml"
+# 15480 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_comma_list_d_ident_ = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15459,7 +15487,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 15463 "parser_cocci_menhir.ml"
+# 15491 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -15467,18 +15495,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15471 "parser_cocci_menhir.ml"
+# 15499 "parser_cocci_menhir.ml"
           
         in
         
-# 1215 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
              P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
            Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
          d )
-# 15482 "parser_cocci_menhir.ml"
+# 15510 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15517,9 +15545,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15523 "parser_cocci_menhir.ml"
+# 15551 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_comma_list_d_ident_ = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15532,7 +15560,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15536 "parser_cocci_menhir.ml"
+# 15564 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -15540,18 +15568,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15544 "parser_cocci_menhir.ml"
+# 15572 "parser_cocci_menhir.ml"
           
         in
         
-# 1215 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
              P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
            Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
          d )
-# 15555 "parser_cocci_menhir.ml"
+# 15583 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15590,15 +15618,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15596 "parser_cocci_menhir.ml"
+# 15624 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15602 "parser_cocci_menhir.ml"
+# 15630 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15608,24 +15636,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 15612 "parser_cocci_menhir.ml"
+# 15640 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 15619 "parser_cocci_menhir.ml"
+# 15647 "parser_cocci_menhir.ml"
           
         in
         
-# 1223 "parser_cocci_menhir.mly"
+# 1235 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv))] )
-# 15629 "parser_cocci_menhir.ml"
+# 15657 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15669,15 +15697,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15675 "parser_cocci_menhir.ml"
+# 15703 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15681 "parser_cocci_menhir.ml"
+# 15709 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15689,24 +15717,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15693 "parser_cocci_menhir.ml"
+# 15721 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 15700 "parser_cocci_menhir.ml"
+# 15728 "parser_cocci_menhir.ml"
           
         in
         
-# 1223 "parser_cocci_menhir.mly"
+# 1235 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv))] )
-# 15710 "parser_cocci_menhir.ml"
+# 15738 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15750,15 +15778,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15756 "parser_cocci_menhir.ml"
+# 15784 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15762 "parser_cocci_menhir.ml"
+# 15790 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15769,7 +15797,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 15773 "parser_cocci_menhir.ml"
+# 15801 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -15777,17 +15805,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15781 "parser_cocci_menhir.ml"
+# 15809 "parser_cocci_menhir.ml"
           
         in
         
-# 1223 "parser_cocci_menhir.mly"
+# 1235 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv))] )
-# 15791 "parser_cocci_menhir.ml"
+# 15819 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15836,15 +15864,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15842 "parser_cocci_menhir.ml"
+# 15870 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15848 "parser_cocci_menhir.ml"
+# 15876 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -15857,7 +15885,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15861 "parser_cocci_menhir.ml"
+# 15889 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -15865,17 +15893,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 15869 "parser_cocci_menhir.ml"
+# 15897 "parser_cocci_menhir.ml"
           
         in
         
-# 1223 "parser_cocci_menhir.mly"
+# 1235 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv))] )
-# 15879 "parser_cocci_menhir.ml"
+# 15907 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15934,36 +15962,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15940 "parser_cocci_menhir.ml"
+# 15968 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15945 "parser_cocci_menhir.ml"
+# 15973 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15951 "parser_cocci_menhir.ml"
+# 15979 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15956 "parser_cocci_menhir.ml"
+# 15984 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15962 "parser_cocci_menhir.ml"
+# 15990 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 15967 "parser_cocci_menhir.ml"
+# 15995 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
@@ -15972,11 +16000,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 15976 "parser_cocci_menhir.ml"
+# 16004 "parser_cocci_menhir.ml"
           
         in
         
-# 1233 "parser_cocci_menhir.mly"
+# 1245 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -15984,7 +16012,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
         [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] )
-# 15988 "parser_cocci_menhir.ml"
+# 16016 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16048,36 +16076,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16054 "parser_cocci_menhir.ml"
+# 16082 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16059 "parser_cocci_menhir.ml"
+# 16087 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16065 "parser_cocci_menhir.ml"
+# 16093 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16070 "parser_cocci_menhir.ml"
+# 16098 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16076 "parser_cocci_menhir.ml"
+# 16104 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16081 "parser_cocci_menhir.ml"
+# 16109 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let x0 : 'tv_storage = Obj.magic x0 in
@@ -16088,11 +16116,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 16092 "parser_cocci_menhir.ml"
+# 16120 "parser_cocci_menhir.ml"
           
         in
         
-# 1233 "parser_cocci_menhir.mly"
+# 1245 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -16100,7 +16128,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
         [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] )
-# 16104 "parser_cocci_menhir.ml"
+# 16132 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16139,29 +16167,109 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _5 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16145 "parser_cocci_menhir.ml"
+# 16173 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16150 "parser_cocci_menhir.ml"
+# 16178 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16156 "parser_cocci_menhir.ml"
+# 16184 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_decl_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_decl_var = 
-# 1241 "parser_cocci_menhir.mly"
+# 1253 "parser_cocci_menhir.mly"
       ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
                                  P.clt2mcode ")" _4,P.clt2mcode ";" _5))] )
-# 16165 "parser_cocci_menhir.ml"
+# 16193 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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.semv = _7;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _4;
+                MenhirLib.EngineTypes.startp = _startpos__4_;
+                MenhirLib.EngineTypes.endp = _endpos__4_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = _3;
+                  MenhirLib.EngineTypes.startp = _startpos__3_;
+                  MenhirLib.EngineTypes.endp = _endpos__3_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = _2;
+                    MenhirLib.EngineTypes.startp = _startpos__2_;
+                    MenhirLib.EngineTypes.endp = _endpos__2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = _1;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let _7 : (
+# 179 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16244 "parser_cocci_menhir.ml"
+        ) = Obj.magic _7 in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 179 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16250 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let _4 : (
+# 149 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16255 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 148 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16261 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_decl_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__7_ in
+        let _v : 'tv_decl_var = 
+# 1256 "parser_cocci_menhir.mly"
+      ( [Ast0.wrap
+           (Ast0.MacroDeclInit
+              (_1,P.clt2mcode "(" _2,_3,
+               P.clt2mcode ")" _4,P.clt2mcode "=" q,e,
+               P.clt2mcode ";" _7))] )
+# 16273 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16230,42 +16338,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16236 "parser_cocci_menhir.ml"
+# 16344 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16242 "parser_cocci_menhir.ml"
+# 16350 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16247 "parser_cocci_menhir.ml"
+# 16355 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16253 "parser_cocci_menhir.ml"
+# 16361 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16258 "parser_cocci_menhir.ml"
+# 16366 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16264 "parser_cocci_menhir.ml"
+# 16372 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16269 "parser_cocci_menhir.ml"
+# 16377 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
@@ -16274,11 +16382,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 16278 "parser_cocci_menhir.ml"
+# 16386 "parser_cocci_menhir.ml"
           
         in
         
-# 1247 "parser_cocci_menhir.mly"
+# 1265 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -16286,7 +16394,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
       [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 16290 "parser_cocci_menhir.ml"
+# 16398 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16360,42 +16468,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16366 "parser_cocci_menhir.ml"
+# 16474 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16372 "parser_cocci_menhir.ml"
+# 16480 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16377 "parser_cocci_menhir.ml"
+# 16485 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16383 "parser_cocci_menhir.ml"
+# 16491 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16388 "parser_cocci_menhir.ml"
+# 16496 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16394 "parser_cocci_menhir.ml"
+# 16502 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16399 "parser_cocci_menhir.ml"
+# 16507 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let x0 : 'tv_storage = Obj.magic x0 in
@@ -16406,11 +16514,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 16410 "parser_cocci_menhir.ml"
+# 16518 "parser_cocci_menhir.ml"
           
         in
         
-# 1247 "parser_cocci_menhir.mly"
+# 1265 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -16418,7 +16526,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
       [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 16422 "parser_cocci_menhir.ml"
+# 16530 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16452,27 +16560,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16458 "parser_cocci_menhir.ml"
+# 16566 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let id : 'tv_comma_list_typedef_ident_ = Obj.magic id in
         let t : 'tv_typedef_ctype = Obj.magic t in
         let s : (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
-# 16465 "parser_cocci_menhir.ml"
+# 16573 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_decl_var = 
-# 1255 "parser_cocci_menhir.mly"
+# 1273 "parser_cocci_menhir.mly"
       ( let s = P.clt2mcode "typedef" s in
         List.map
          (function id ->
            Ast0.wrap(Ast0.Typedef(s,t,id,P.clt2mcode ";" pv)))
          id )
-# 16476 "parser_cocci_menhir.ml"
+# 16584 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16494,13 +16602,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_define_param_list_option = 
-# 990 "parser_cocci_menhir.mly"
+# 993 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.DOTS
             (_1
                (fun _ d -> Ast0.wrap(Ast0.DPdots(P.clt2mcode "," d)))
                (fun c -> Ast0.DPComma c))) )
-# 16504 "parser_cocci_menhir.ml"
+# 16612 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16519,14 +16627,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 150 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
-# 16525 "parser_cocci_menhir.ml"
+# 16633 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_defineop = 
-# 934 "parser_cocci_menhir.mly"
+# 937 "parser_cocci_menhir.mly"
     ( let (clt,ident) = _1 in
       let aft = P.get_aft clt in (* move stuff after the define to the ident *)
       function body ->
@@ -16550,7 +16658,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                       "unexpected name for a #define")),
              Ast0.wrap Ast0.NoParams,
              body)) )
-# 16554 "parser_cocci_menhir.ml"
+# 16662 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16579,20 +16687,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16585 "parser_cocci_menhir.ml"
+# 16693 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_define_param_list_option = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 154 "parser_cocci_menhir.mly"
        (Data.clt * token * int * int)
-# 16591 "parser_cocci_menhir.ml"
+# 16699 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_defineop = 
-# 958 "parser_cocci_menhir.mly"
+# 961 "parser_cocci_menhir.mly"
     ( let (clt,ident,parenoff,parencol) = _1 in
       let aft = P.get_aft clt in (* move stuff after the define to the ( *)
       (* clt is the start of the #define itself *)
@@ -16618,7 +16726,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                       "unexpected name for a #define")),
              (let clt = P.set_aft aft _3 in
              Ast0.wrap (Ast0.DParams (lp,_2,P.clt2mcode ")" clt))),body)) )
-# 16622 "parser_cocci_menhir.ml"
+# 16730 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16637,16 +16745,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 16643 "parser_cocci_menhir.ml"
+# 16751 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dep = 
-# 296 "parser_cocci_menhir.mly"
+# 299 "parser_cocci_menhir.mly"
                    ( Ast0.Dep _1 )
-# 16650 "parser_cocci_menhir.ml"
+# 16758 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16669,16 +16777,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 16675 "parser_cocci_menhir.ml"
+# 16783 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_dep = 
-# 297 "parser_cocci_menhir.mly"
+# 300 "parser_cocci_menhir.mly"
                    ( Ast0.AntiDep (Ast0.Dep _2) )
-# 16682 "parser_cocci_menhir.ml"
+# 16790 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16712,9 +16820,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_dep = 
-# 299 "parser_cocci_menhir.mly"
+# 302 "parser_cocci_menhir.mly"
                    ( Ast0.AntiDep _3 )
-# 16718 "parser_cocci_menhir.ml"
+# 16826 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16737,16 +16845,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 16743 "parser_cocci_menhir.ml"
+# 16851 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_dep = 
-# 300 "parser_cocci_menhir.mly"
+# 303 "parser_cocci_menhir.mly"
                    ( Ast0.EverDep _2 )
-# 16750 "parser_cocci_menhir.ml"
+# 16858 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16769,16 +16877,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 16775 "parser_cocci_menhir.ml"
+# 16883 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_dep = 
-# 301 "parser_cocci_menhir.mly"
+# 304 "parser_cocci_menhir.mly"
                    ( Ast0.NeverDep _2 )
-# 16782 "parser_cocci_menhir.ml"
+# 16890 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16810,9 +16918,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_dep = 
-# 302 "parser_cocci_menhir.mly"
+# 305 "parser_cocci_menhir.mly"
                    ( Ast0.AndDep(_1, _3) )
-# 16816 "parser_cocci_menhir.ml"
+# 16924 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16844,9 +16952,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_dep = 
-# 303 "parser_cocci_menhir.mly"
+# 306 "parser_cocci_menhir.mly"
                    ( Ast0.OrDep (_1, _3) )
-# 16850 "parser_cocci_menhir.ml"
+# 16958 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16876,9 +16984,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_dep = 
-# 304 "parser_cocci_menhir.mly"
+# 307 "parser_cocci_menhir.mly"
                    ( _2 )
-# 16882 "parser_cocci_menhir.ml"
+# 16990 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16893,9 +17001,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_depends = 
-# 292 "parser_cocci_menhir.mly"
+# 295 "parser_cocci_menhir.mly"
                            ( Ast0.NoDep )
-# 16899 "parser_cocci_menhir.ml"
+# 17007 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16925,9 +17033,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_parents_ in
         let _v : 'tv_depends = 
-# 293 "parser_cocci_menhir.mly"
+# 296 "parser_cocci_menhir.mly"
                            ( parents )
-# 16931 "parser_cocci_menhir.ml"
+# 17039 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16952,16 +17060,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_disj_ident = Obj.magic _2 in
         let _1 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16958 "parser_cocci_menhir.ml"
+# 17066 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_designator = 
-# 1364 "parser_cocci_menhir.mly"
+# 1388 "parser_cocci_menhir.mly"
      ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) )
-# 16965 "parser_cocci_menhir.ml"
+# 17073 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16990,22 +17098,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 16996 "parser_cocci_menhir.ml"
+# 17104 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17002 "parser_cocci_menhir.ml"
+# 17110 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_designator = 
-# 1366 "parser_cocci_menhir.mly"
+# 1390 "parser_cocci_menhir.mly"
      ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) )
-# 17009 "parser_cocci_menhir.ml"
+# 17117 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17044,29 +17152,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _5 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17050 "parser_cocci_menhir.ml"
+# 17158 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : 'tv_eexpr = Obj.magic _4 in
         let _3 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17056 "parser_cocci_menhir.ml"
+# 17164 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17062 "parser_cocci_menhir.ml"
+# 17170 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_designator = 
-# 1368 "parser_cocci_menhir.mly"
+# 1392 "parser_cocci_menhir.mly"
      ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3,
                             _4,P.clt2mcode "]" _5) )
-# 17070 "parser_cocci_menhir.ml"
+# 17178 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17084,13 +17192,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _1 : 'tv_pre_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dexpr = 
-# 1447 "parser_cocci_menhir.mly"
-                                          ( _1 )
-# 17094 "parser_cocci_menhir.ml"
+# 1475 "parser_cocci_menhir.mly"
+                                              ( _1 )
+# 17202 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17116,9 +17224,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_disable = 
-# 310 "parser_cocci_menhir.mly"
+# 313 "parser_cocci_menhir.mly"
                                                       ( List.map P.id2name _2 )
-# 17122 "parser_cocci_menhir.ml"
+# 17230 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17140,9 +17248,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_disj_ident = 
-# 1997 "parser_cocci_menhir.mly"
+# 2033 "parser_cocci_menhir.mly"
               ( _1 )
-# 17146 "parser_cocci_menhir.ml"
+# 17254 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17171,24 +17279,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17177 "parser_cocci_menhir.ml"
+# 17285 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_disj_ident_disj_ident_ = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17183 "parser_cocci_menhir.ml"
+# 17291 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_disj_ident = 
-# 1999 "parser_cocci_menhir.mly"
+# 2035 "parser_cocci_menhir.mly"
   ( let (mids,code) = t in
         Ast0.wrap
           (Ast0.DisjId(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
-# 17192 "parser_cocci_menhir.ml"
+# 17300 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17207,16 +17315,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17213 "parser_cocci_menhir.ml"
+# 17321 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dot_expressions = 
-# 1456 "parser_cocci_menhir.mly"
+# 1485 "parser_cocci_menhir.mly"
             ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) )
-# 17220 "parser_cocci_menhir.ml"
+# 17328 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17238,9 +17346,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dot_expressions = 
-# 1457 "parser_cocci_menhir.mly"
+# 1486 "parser_cocci_menhir.mly"
                    ( _1 )
-# 17244 "parser_cocci_menhir.ml"
+# 17352 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17262,9 +17370,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dparam = 
-# 986 "parser_cocci_menhir.mly"
+# 989 "parser_cocci_menhir.mly"
                ( Ast0.wrap(Ast0.DParam _1) )
-# 17268 "parser_cocci_menhir.ml"
+# 17376 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_eargexpr = 
+# 1473 "parser_cocci_menhir.mly"
+                                            ( _1 )
+# 17400 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17283,16 +17415,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17289 "parser_cocci_menhir.ml"
+# 17421 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_edots_when_TEllipsis_eexpr_ = 
-# 2319 "parser_cocci_menhir.mly"
+# 2355 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
-# 17296 "parser_cocci_menhir.ml"
+# 17428 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17329,16 +17461,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_eexpr = Obj.magic w in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17335 "parser_cocci_menhir.ml"
+# 17467 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_edots_when_TEllipsis_eexpr_ = 
-# 2320 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
-# 17342 "parser_cocci_menhir.ml"
+# 17474 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17357,16 +17489,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17363 "parser_cocci_menhir.ml"
+# 17495 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = 
-# 2319 "parser_cocci_menhir.mly"
+# 2355 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
-# 17370 "parser_cocci_menhir.ml"
+# 17502 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17403,16 +17535,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_enum_decl_one = Obj.magic w in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17409 "parser_cocci_menhir.ml"
+# 17541 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = 
-# 2320 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
-# 17416 "parser_cocci_menhir.ml"
+# 17548 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17431,16 +17563,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17437 "parser_cocci_menhir.ml"
+# 17569 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_edots_when_TEllipsis_initialize_ = 
-# 2319 "parser_cocci_menhir.mly"
+# 2355 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
-# 17444 "parser_cocci_menhir.ml"
+# 17576 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17477,16 +17609,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_initialize = Obj.magic w in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17483 "parser_cocci_menhir.ml"
+# 17615 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_edots_when_TEllipsis_initialize_ = 
-# 2320 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
-# 17490 "parser_cocci_menhir.ml"
+# 17622 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17505,16 +17637,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17511 "parser_cocci_menhir.ml"
+# 17643 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_edots_when_TEllipsis_struct_decl_one_ = 
-# 2319 "parser_cocci_menhir.mly"
+# 2355 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
-# 17518 "parser_cocci_menhir.ml"
+# 17650 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17551,16 +17683,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_struct_decl_one = Obj.magic w in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17557 "parser_cocci_menhir.ml"
+# 17689 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_edots_when_TEllipsis_struct_decl_one_ = 
-# 2320 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
-# 17564 "parser_cocci_menhir.ml"
+# 17696 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17578,13 +17710,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _1 : 'tv_pre_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_eexpr = 
-# 1445 "parser_cocci_menhir.mly"
-                                         ( _1 )
-# 17588 "parser_cocci_menhir.ml"
+# 1472 "parser_cocci_menhir.mly"
+                                             ( _1 )
+# 17720 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17606,13 +17738,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_eexpr_list_option = 
-# 2299 "parser_cocci_menhir.mly"
+# 2335 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.DOTS
             (_1
                (fun _ d -> Ast0.wrap(Ast0.Edots(P.clt2mcode "..." d,None)))
                (fun c -> Ast0.EComma c))) )
-# 17616 "parser_cocci_menhir.ml"
+# 17748 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17627,9 +17759,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_empty_list_start_aexpr_TEllipsis_ = 
-# 2061 "parser_cocci_menhir.mly"
+# 2097 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
-# 17633 "parser_cocci_menhir.ml"
+# 17765 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17651,9 +17783,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_aexpr_TEllipsis_ = 
-# 2062 "parser_cocci_menhir.mly"
+# 2098 "parser_cocci_menhir.mly"
                                    ( _1 )
-# 17657 "parser_cocci_menhir.ml"
+# 17789 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17668,9 +17800,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_empty_list_start_dparam_TEllipsis_ = 
-# 2061 "parser_cocci_menhir.mly"
+# 2097 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
-# 17674 "parser_cocci_menhir.ml"
+# 17806 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17692,9 +17824,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_dparam_TEllipsis_ = 
-# 2062 "parser_cocci_menhir.mly"
+# 2098 "parser_cocci_menhir.mly"
                                    ( _1 )
-# 17698 "parser_cocci_menhir.ml"
+# 17830 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17709,9 +17841,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2061 "parser_cocci_menhir.mly"
+# 2097 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
-# 17715 "parser_cocci_menhir.ml"
+# 17847 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17733,9 +17865,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2062 "parser_cocci_menhir.mly"
+# 2098 "parser_cocci_menhir.mly"
                                    ( _1 )
-# 17739 "parser_cocci_menhir.ml"
+# 17871 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17750,9 +17882,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_empty_list_start_one_dec_decl__TEllipsis_ = 
-# 2061 "parser_cocci_menhir.mly"
+# 2097 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
-# 17756 "parser_cocci_menhir.ml"
+# 17888 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17774,9 +17906,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_one_dec_decl__TEllipsis_ = 
-# 2062 "parser_cocci_menhir.mly"
+# 2098 "parser_cocci_menhir.mly"
                                    ( _1 )
-# 17780 "parser_cocci_menhir.ml"
+# 17912 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17791,9 +17923,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2061 "parser_cocci_menhir.mly"
+# 2097 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
-# 17797 "parser_cocci_menhir.ml"
+# 17929 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17815,9 +17947,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2062 "parser_cocci_menhir.mly"
+# 2098 "parser_cocci_menhir.mly"
                                    ( _1 )
-# 17821 "parser_cocci_menhir.ml"
+# 17953 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17839,9 +17971,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_decl_list = 
-# 832 "parser_cocci_menhir.mly"
+# 835 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.DOTS(_1 P.mkedots (fun c -> Ast0.EComma c))) )
-# 17845 "parser_cocci_menhir.ml"
+# 17977 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17863,9 +17995,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_decl_one = 
-# 803 "parser_cocci_menhir.mly"
+# 806 "parser_cocci_menhir.mly"
                     ( Ast0.wrap(Ast0.Ident(_1)) )
-# 17869 "parser_cocci_menhir.ml"
+# 18001 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17895,21 +18027,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_enum_val = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 17901 "parser_cocci_menhir.ml"
+# 18033 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_disj_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_enum_decl_one = 
-# 805 "parser_cocci_menhir.mly"
+# 808 "parser_cocci_menhir.mly"
  ( let id = Ast0.wrap(Ast0.Ident(_1)) in
        Ast0.wrap
          (Ast0.Assignment
             (id,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,
              false)) )
-# 17913 "parser_cocci_menhir.ml"
+# 18045 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17931,9 +18063,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 812 "parser_cocci_menhir.mly"
+# 815 "parser_cocci_menhir.mly"
             ( Ast0.wrap(Ast0.Ident(_1)) )
-# 17937 "parser_cocci_menhir.ml"
+# 18069 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17952,17 +18084,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 17958 "parser_cocci_menhir.ml"
+# 18090 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 814 "parser_cocci_menhir.mly"
+# 817 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 17966 "parser_cocci_menhir.ml"
+# 18098 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17981,16 +18113,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 17987 "parser_cocci_menhir.ml"
+# 18119 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 816 "parser_cocci_menhir.mly"
+# 819 "parser_cocci_menhir.mly"
          ( tmeta_to_exp _1 )
-# 17994 "parser_cocci_menhir.ml"
+# 18126 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18009,18 +18141,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 18015 "parser_cocci_menhir.ml"
+# 18147 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 818 "parser_cocci_menhir.mly"
+# 821 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 18024 "parser_cocci_menhir.ml"
+# 18156 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18039,18 +18171,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 18045 "parser_cocci_menhir.ml"
+# 18177 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 822 "parser_cocci_menhir.mly"
+# 825 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 18054 "parser_cocci_menhir.ml"
+# 18186 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18069,18 +18201,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 18075 "parser_cocci_menhir.ml"
+# 18207 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 826 "parser_cocci_menhir.mly"
+# 829 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 18084 "parser_cocci_menhir.ml"
+# 18216 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18100,9 +18232,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_exists = 
-# 313 "parser_cocci_menhir.mly"
+# 316 "parser_cocci_menhir.mly"
           ( Ast.Exists )
-# 18106 "parser_cocci_menhir.ml"
+# 18238 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18122,9 +18254,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_exists = 
-# 314 "parser_cocci_menhir.mly"
+# 317 "parser_cocci_menhir.mly"
           ( Ast.Forall )
-# 18128 "parser_cocci_menhir.ml"
+# 18260 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18139,9 +18271,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_exists = 
-# 315 "parser_cocci_menhir.mly"
+# 318 "parser_cocci_menhir.mly"
           ( Ast.Undetermined )
-# 18145 "parser_cocci_menhir.ml"
+# 18277 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18163,9 +18295,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_expr = 
-# 1443 "parser_cocci_menhir.mly"
+# 1470 "parser_cocci_menhir.mly"
                                 ( _1 )
-# 18169 "parser_cocci_menhir.ml"
+# 18301 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18187,9 +18319,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_r_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_expr_dots_TEllipsis_ = 
-# 1697 "parser_cocci_menhir.mly"
+# 1733 "parser_cocci_menhir.mly"
                                                        ( r )
-# 18193 "parser_cocci_menhir.ml"
+# 18325 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18211,9 +18343,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 574 "parser_cocci_menhir.mly"
+# 577 "parser_cocci_menhir.mly"
                         ( P.ty_pointerify Type_cocci.Unknown m )
-# 18217 "parser_cocci_menhir.ml"
+# 18349 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18239,9 +18371,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 576 "parser_cocci_menhir.mly"
+# 579 "parser_cocci_menhir.mly"
     ( P.ty_pointerify (Type_cocci.EnumName Type_cocci.NoName) m )
-# 18245 "parser_cocci_menhir.ml"
+# 18377 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18267,10 +18399,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 578 "parser_cocci_menhir.mly"
+# 581 "parser_cocci_menhir.mly"
     ( P.ty_pointerify
        (Type_cocci.StructUnionName (Type_cocci.Struct,Type_cocci.NoName)) m )
-# 18274 "parser_cocci_menhir.ml"
+# 18406 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18296,10 +18428,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 581 "parser_cocci_menhir.mly"
+# 584 "parser_cocci_menhir.mly"
     ( P.ty_pointerify
        (Type_cocci.StructUnionName (Type_cocci.Union,Type_cocci.NoName)) m )
-# 18303 "parser_cocci_menhir.ml"
+# 18435 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18314,9 +18446,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_extends = 
-# 287 "parser_cocci_menhir.mly"
+# 290 "parser_cocci_menhir.mly"
                                                   ( () )
-# 18320 "parser_cocci_menhir.ml"
+# 18452 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18339,16 +18471,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let parent : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 18345 "parser_cocci_menhir.ml"
+# 18477 "parser_cocci_menhir.ml"
         ) = Obj.magic parent in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_parent_ in
         let _v : 'tv_extends = 
-# 289 "parser_cocci_menhir.mly"
+# 292 "parser_cocci_menhir.mly"
     ( !Data.install_bindings (parent) )
-# 18352 "parser_cocci_menhir.ml"
+# 18484 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18372,23 +18504,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 152 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 18378 "parser_cocci_menhir.ml"
+# 18510 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 18383 "parser_cocci_menhir.ml"
+# 18515 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_filespec = 
-# 869 "parser_cocci_menhir.mly"
+# 872 "parser_cocci_menhir.mly"
     ( [Ast0.wrap
          (Ast0.FILEINFO(P.id2mcode _1,
                         P.id2mcode _2))] )
-# 18392 "parser_cocci_menhir.ml"
+# 18524 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18410,9 +18542,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fn_ident = 
-# 1972 "parser_cocci_menhir.mly"
+# 2008 "parser_cocci_menhir.mly"
                      ( _1 )
-# 18416 "parser_cocci_menhir.ml"
+# 18548 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18431,17 +18563,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 129 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 18437 "parser_cocci_menhir.ml"
+# 18569 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fn_ident = 
-# 1974 "parser_cocci_menhir.mly"
+# 2010 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) )
-# 18445 "parser_cocci_menhir.ml"
+# 18577 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18460,18 +18592,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 129 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 18466 "parser_cocci_menhir.ml"
+# 18598 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fn_ident = 
-# 1977 "parser_cocci_menhir.mly"
+# 2013 "parser_cocci_menhir.mly"
   ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap
           (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) )
-# 18475 "parser_cocci_menhir.ml"
+# 18607 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18486,9 +18618,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_fninfo = 
-# 1022 "parser_cocci_menhir.mly"
+# 1025 "parser_cocci_menhir.mly"
                 ( [] )
-# 18492 "parser_cocci_menhir.ml"
+# 18624 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18516,13 +18648,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo = 
-# 1024 "parser_cocci_menhir.mly"
+# 1027 "parser_cocci_menhir.mly"
       ( try
        let _ =
          List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate storage")
       with Not_found -> (Ast0.FStorage(_1))::_2 )
-# 18526 "parser_cocci_menhir.ml"
+# 18658 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18550,9 +18682,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_fninfo = 
-# 1029 "parser_cocci_menhir.mly"
+# 1032 "parser_cocci_menhir.mly"
                         ( (Ast0.FType(t))::r )
-# 18556 "parser_cocci_menhir.ml"
+# 18688 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18577,19 +18709,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo = Obj.magic _2 in
         let _1 : (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
-# 18583 "parser_cocci_menhir.ml"
+# 18715 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo = 
-# 1031 "parser_cocci_menhir.mly"
+# 1034 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate inline")
       with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 )
-# 18593 "parser_cocci_menhir.ml"
+# 18725 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18614,19 +18746,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo = Obj.magic _2 in
         let _1 : (
-# 121 "parser_cocci_menhir.mly"
+# 123 "parser_cocci_menhir.mly"
       (string * Data.clt)
-# 18620 "parser_cocci_menhir.ml"
+# 18752 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo = 
-# 1036 "parser_cocci_menhir.mly"
+# 1039 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "multiple attributes")
       with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 )
-# 18630 "parser_cocci_menhir.ml"
+# 18762 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18641,9 +18773,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_fninfo_nt = 
-# 1042 "parser_cocci_menhir.mly"
+# 1045 "parser_cocci_menhir.mly"
                 ( [] )
-# 18647 "parser_cocci_menhir.ml"
+# 18779 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18671,13 +18803,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo_nt = 
-# 1044 "parser_cocci_menhir.mly"
+# 1047 "parser_cocci_menhir.mly"
       ( try
        let _ =
          List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate storage")
       with Not_found -> (Ast0.FStorage(_1))::_2 )
-# 18681 "parser_cocci_menhir.ml"
+# 18813 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18702,19 +18834,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo_nt = Obj.magic _2 in
         let _1 : (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
-# 18708 "parser_cocci_menhir.ml"
+# 18840 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo_nt = 
-# 1050 "parser_cocci_menhir.mly"
+# 1053 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate inline")
       with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 )
-# 18718 "parser_cocci_menhir.ml"
+# 18850 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18739,19 +18871,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo_nt = Obj.magic _2 in
         let _1 : (
-# 121 "parser_cocci_menhir.mly"
+# 123 "parser_cocci_menhir.mly"
       (string * Data.clt)
-# 18745 "parser_cocci_menhir.ml"
+# 18877 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo_nt = 
-# 1055 "parser_cocci_menhir.mly"
+# 1058 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate init")
       with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 )
-# 18755 "parser_cocci_menhir.ml"
+# 18887 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18766,9 +18898,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_fun_after_dots = 
-# 2232 "parser_cocci_menhir.mly"
+# 2268 "parser_cocci_menhir.mly"
                                ([])
-# 18772 "parser_cocci_menhir.ml"
+# 18904 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18794,9 +18926,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots = 
-# 2233 "parser_cocci_menhir.mly"
+# 2269 "parser_cocci_menhir.mly"
                                (_2)
-# 18800 "parser_cocci_menhir.ml"
+# 18932 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18824,9 +18956,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots = 
-# 2234 "parser_cocci_menhir.mly"
+# 2270 "parser_cocci_menhir.mly"
                                (Ast0.wrap(Ast0.Exp(_1))::_2)
-# 18830 "parser_cocci_menhir.ml"
+# 18962 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18854,9 +18986,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots = 
-# 2235 "parser_cocci_menhir.mly"
+# 2271 "parser_cocci_menhir.mly"
                                     (_1@_2)
-# 18860 "parser_cocci_menhir.ml"
+# 18992 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18871,9 +19003,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_fun_after_dots_or = 
-# 2242 "parser_cocci_menhir.mly"
+# 2278 "parser_cocci_menhir.mly"
                                ([])
-# 18877 "parser_cocci_menhir.ml"
+# 19009 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18899,9 +19031,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots_or = 
-# 2243 "parser_cocci_menhir.mly"
+# 2279 "parser_cocci_menhir.mly"
                                (_2)
-# 18905 "parser_cocci_menhir.ml"
+# 19037 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18929,9 +19061,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots_or = 
-# 2244 "parser_cocci_menhir.mly"
+# 2280 "parser_cocci_menhir.mly"
                                (Ast0.wrap(Ast0.Exp(_1))::_2)
-# 18935 "parser_cocci_menhir.ml"
+# 19067 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18959,9 +19091,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots_or = 
-# 2245 "parser_cocci_menhir.mly"
+# 2281 "parser_cocci_menhir.mly"
                                     (_1@_2)
-# 18965 "parser_cocci_menhir.ml"
+# 19097 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18989,9 +19121,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_exp = 
-# 2238 "parser_cocci_menhir.mly"
+# 2274 "parser_cocci_menhir.mly"
                                (_1::_2)
-# 18995 "parser_cocci_menhir.ml"
+# 19127 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19006,9 +19138,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_fun_after_exp_or = 
-# 2248 "parser_cocci_menhir.mly"
+# 2284 "parser_cocci_menhir.mly"
                                ([])
-# 19012 "parser_cocci_menhir.ml"
+# 19144 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19036,9 +19168,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_exp_or = 
-# 2249 "parser_cocci_menhir.mly"
+# 2285 "parser_cocci_menhir.mly"
                                (_1::_2)
-# 19042 "parser_cocci_menhir.ml"
+# 19174 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19053,9 +19185,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_fun_after_stm = 
-# 2227 "parser_cocci_menhir.mly"
+# 2263 "parser_cocci_menhir.mly"
                                ([])
-# 19059 "parser_cocci_menhir.ml"
+# 19191 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19083,9 +19215,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_stm = 
-# 2228 "parser_cocci_menhir.mly"
+# 2264 "parser_cocci_menhir.mly"
                                (_1::_2)
-# 19089 "parser_cocci_menhir.ml"
+# 19221 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19113,9 +19245,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_stm = 
-# 2229 "parser_cocci_menhir.mly"
+# 2265 "parser_cocci_menhir.mly"
                                (_1@_2)
-# 19119 "parser_cocci_menhir.ml"
+# 19251 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19137,9 +19269,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fun_start = 
-# 2224 "parser_cocci_menhir.mly"
+# 2260 "parser_cocci_menhir.mly"
                  ( Ast0.wrap(Ast0.DOTS(_1)) )
-# 19143 "parser_cocci_menhir.ml"
+# 19275 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19161,9 +19293,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_func_ident = 
-# 1963 "parser_cocci_menhir.mly"
+# 1999 "parser_cocci_menhir.mly"
              ( _1 )
-# 19167 "parser_cocci_menhir.ml"
+# 19299 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19182,17 +19314,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 129 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 19188 "parser_cocci_menhir.ml"
+# 19320 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_func_ident = 
-# 1965 "parser_cocci_menhir.mly"
+# 2001 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) )
-# 19196 "parser_cocci_menhir.ml"
+# 19328 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19211,18 +19343,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 129 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 19217 "parser_cocci_menhir.ml"
+# 19349 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_func_ident = 
-# 1968 "parser_cocci_menhir.mly"
+# 2004 "parser_cocci_menhir.mly"
   ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap
           (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) )
-# 19226 "parser_cocci_menhir.ml"
+# 19358 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19280,33 +19412,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rb : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19286 "parser_cocci_menhir.ml"
+# 19418 "parser_cocci_menhir.ml"
         ) = Obj.magic rb in
         let b : 'tv_fun_start = Obj.magic b in
         let lb : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19292 "parser_cocci_menhir.ml"
+# 19424 "parser_cocci_menhir.ml"
         ) = Obj.magic lb in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19297 "parser_cocci_menhir.ml"
+# 19429 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let d : 'tv_decl_list_decl_ = Obj.magic d in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19303 "parser_cocci_menhir.ml"
+# 19435 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let i : 'tv_fn_ident = Obj.magic i in
         let f : 'tv_fninfo = Obj.magic f in
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_rb_ in
         let _v : 'tv_fundecl = 
-# 1013 "parser_cocci_menhir.mly"
+# 1016 "parser_cocci_menhir.mly"
       ( P.verify_parameter_declarations (Ast0.undots d);
        Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()),
                               f, i,
@@ -19314,7 +19446,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                               P.clt2mcode ")" rp,
                               P.clt2mcode "{" lb, b,
                               P.clt2mcode "}" rb)) )
-# 19318 "parser_cocci_menhir.ml"
+# 19450 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19358,20 +19490,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pt : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19364 "parser_cocci_menhir.ml"
+# 19496 "parser_cocci_menhir.ml"
         ) = Obj.magic pt in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19369 "parser_cocci_menhir.ml"
+# 19501 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19375 "parser_cocci_menhir.ml"
+# 19507 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let id : 'tv_fn_ident = Obj.magic id in
         let t : 'tv_ctype = Obj.magic t in
@@ -19381,11 +19513,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 19385 "parser_cocci_menhir.ml"
+# 19517 "parser_cocci_menhir.ml"
           
         in
         
-# 1001 "parser_cocci_menhir.mly"
+# 1004 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.UnInit
             (s,
@@ -19393,7 +19525,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                (Ast0.FunctionType(Some t,
                                   P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
              id, P.clt2mcode ";" pt)) )
-# 19397 "parser_cocci_menhir.ml"
+# 19529 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19442,20 +19574,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pt : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19448 "parser_cocci_menhir.ml"
+# 19580 "parser_cocci_menhir.ml"
         ) = Obj.magic pt in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19453 "parser_cocci_menhir.ml"
+# 19585 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19459 "parser_cocci_menhir.ml"
+# 19591 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let id : 'tv_fn_ident = Obj.magic id in
         let t : 'tv_ctype = Obj.magic t in
@@ -19467,11 +19599,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 19471 "parser_cocci_menhir.ml"
+# 19603 "parser_cocci_menhir.ml"
           
         in
         
-# 1001 "parser_cocci_menhir.mly"
+# 1004 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.UnInit
             (s,
@@ -19479,7 +19611,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                (Ast0.FunctionType(Some t,
                                   P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
              id, P.clt2mcode ";" pt)) )
-# 19483 "parser_cocci_menhir.ml"
+# 19615 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19501,9 +19633,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident = 
-# 1982 "parser_cocci_menhir.mly"
+# 2018 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 19507 "parser_cocci_menhir.ml"
+# 19639 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19525,9 +19657,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident = 
-# 1983 "parser_cocci_menhir.mly"
+# 2019 "parser_cocci_menhir.mly"
                          ( _1 )
-# 19531 "parser_cocci_menhir.ml"
+# 19663 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19546,17 +19678,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 128 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
-# 19552 "parser_cocci_menhir.ml"
+# 19684 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident = 
-# 1985 "parser_cocci_menhir.mly"
+# 2021 "parser_cocci_menhir.mly"
          ( let (nm,constraints,seed,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,seed,pure)) )
-# 19560 "parser_cocci_menhir.ml"
+# 19692 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19578,9 +19710,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_i_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_ident_or_const = 
-# 1935 "parser_cocci_menhir.mly"
+# 1971 "parser_cocci_menhir.mly"
                     ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) )
-# 19584 "parser_cocci_menhir.ml"
+# 19716 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19602,9 +19734,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident_or_const = 
-# 1936 "parser_cocci_menhir.mly"
+# 1972 "parser_cocci_menhir.mly"
                          ( Ast0.wrap(Ast0.Ident(_1)) )
-# 19608 "parser_cocci_menhir.ml"
+# 19740 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19623,17 +19755,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 19629 "parser_cocci_menhir.ml"
+# 19761 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident_or_const = 
-# 1938 "parser_cocci_menhir.mly"
+# 1974 "parser_cocci_menhir.mly"
   ( let (x,clt) = _1 in
         Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 19637 "parser_cocci_menhir.ml"
+# 19769 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19652,16 +19784,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 149 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 19658 "parser_cocci_menhir.ml"
+# 19790 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_incl = 
-# 326 "parser_cocci_menhir.mly"
+# 329 "parser_cocci_menhir.mly"
                       ( let (x,_) = _1 in Data.Include(x) )
-# 19665 "parser_cocci_menhir.ml"
+# 19797 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19684,16 +19816,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 19690 "parser_cocci_menhir.ml"
+# 19822 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_incl = 
-# 327 "parser_cocci_menhir.mly"
+# 330 "parser_cocci_menhir.mly"
                       ( Data.Iso(Common.Left(P.id2name _2)) )
-# 19697 "parser_cocci_menhir.ml"
+# 19829 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19716,16 +19848,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 148 "parser_cocci_menhir.mly"
+# 151 "parser_cocci_menhir.mly"
        (string)
-# 19722 "parser_cocci_menhir.ml"
+# 19854 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_incl = 
-# 328 "parser_cocci_menhir.mly"
+# 331 "parser_cocci_menhir.mly"
                       ( Data.Iso(Common.Right _2) )
-# 19729 "parser_cocci_menhir.ml"
+# 19861 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19751,7 +19883,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_incl = 
-# 330 "parser_cocci_menhir.mly"
+# 333 "parser_cocci_menhir.mly"
     ( let names = List.map P.id2name _2 in
       Iteration.parsed_virtual_rules :=
        Common.union_set names !Iteration.parsed_virtual_rules;
@@ -19760,7 +19892,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (function name -> Hashtbl.add Data.all_metadecls name [])
       names;
       Data.Virt(names) )
-# 19764 "parser_cocci_menhir.ml"
+# 19896 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19786,13 +19918,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 217 "parser_cocci_menhir.mly"
+# 220 "parser_cocci_menhir.mly"
       (Data.incl_iso list)
-# 19792 "parser_cocci_menhir.ml"
+# 19924 "parser_cocci_menhir.ml"
         ) = 
-# 322 "parser_cocci_menhir.mly"
+# 325 "parser_cocci_menhir.mly"
                        ( _1 )
-# 19796 "parser_cocci_menhir.ml"
+# 19928 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19818,13 +19950,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 217 "parser_cocci_menhir.mly"
+# 220 "parser_cocci_menhir.mly"
       (Data.incl_iso list)
-# 19824 "parser_cocci_menhir.ml"
+# 19956 "parser_cocci_menhir.ml"
         ) = 
-# 323 "parser_cocci_menhir.mly"
+# 326 "parser_cocci_menhir.mly"
                        ( _1 )
-# 19828 "parser_cocci_menhir.ml"
+# 19960 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19843,14 +19975,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 149 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 19849 "parser_cocci_menhir.ml"
+# 19981 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_includes = 
-# 875 "parser_cocci_menhir.mly"
+# 878 "parser_cocci_menhir.mly"
     ( Ast0.wrap
              (Ast0.Include(P.clt2mcode "#include"
                              (P.drop_pos (P.drop_aft (P.id2clt _1))),
@@ -19861,7 +19993,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                            P.clt2mcode
                              (Ast.Local (Parse_aux.str2inc (P.id2name _1)))
                              (P.drop_bef clt))) )
-# 19865 "parser_cocci_menhir.ml"
+# 19997 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19880,14 +20012,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 149 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 19886 "parser_cocci_menhir.ml"
+# 20018 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_includes = 
-# 886 "parser_cocci_menhir.mly"
+# 889 "parser_cocci_menhir.mly"
     ( Ast0.wrap
              (Ast0.Include(P.clt2mcode "#include"
                              (P.drop_pos (P.drop_aft (P.id2clt _1))),
@@ -19898,7 +20030,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                            P.clt2mcode
                              (Ast.NonLocal (Parse_aux.str2inc (P.id2name _1)))
                              (P.drop_bef clt))) )
-# 19902 "parser_cocci_menhir.ml"
+# 20034 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19921,14 +20053,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _1 : (
-# 150 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
-# 19927 "parser_cocci_menhir.ml"
+# 20059 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_includes = 
-# 897 "parser_cocci_menhir.mly"
+# 900 "parser_cocci_menhir.mly"
     ( let (clt,ident) = _1 in
       let aft = P.get_aft clt in (* move stuff after the define to the ident *)
       Ast0.wrap
@@ -19948,7 +20080,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
              raise
                (Semantic_cocci.Semantic
                   "unexpected name for a #define")))) )
-# 19952 "parser_cocci_menhir.ml"
+# 20084 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19974,9 +20106,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_includes = 
-# 917 "parser_cocci_menhir.mly"
+# 920 "parser_cocci_menhir.mly"
     ( d (Ast0.wrap(Ast0.DOTS([]))) )
-# 19980 "parser_cocci_menhir.ml"
+# 20112 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20008,10 +20140,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_includes = 
-# 919 "parser_cocci_menhir.mly"
+# 922 "parser_cocci_menhir.mly"
     ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in
       d (Ast0.wrap(Ast0.DOTS([ty]))) )
-# 20015 "parser_cocci_menhir.ml"
+# 20147 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20043,7 +20175,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_includes = 
-# 922 "parser_cocci_menhir.mly"
+# 925 "parser_cocci_menhir.mly"
     ( let body =
        match b with
          [e] ->
@@ -20053,7 +20185,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
            | _ -> b)
        | _ -> b in
       _1 (Ast0.wrap(Ast0.DOTS(body))) )
-# 20057 "parser_cocci_menhir.ml"
+# 20189 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20075,9 +20207,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize = 
-# 1321 "parser_cocci_menhir.mly"
+# 1345 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.InitExpr(_1)) )
-# 20081 "parser_cocci_menhir.ml"
+# 20213 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20106,27 +20238,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 20112 "parser_cocci_menhir.ml"
+# 20244 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_initialize_list = Obj.magic _2 in
         let _1 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 20118 "parser_cocci_menhir.ml"
+# 20250 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize = 
-# 1323 "parser_cocci_menhir.mly"
+# 1347 "parser_cocci_menhir.mly"
     ( if P.struct_initializer _2
     then
       let il = P.drop_dot_commas _2 in
       Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false))
     else
       Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) )
-# 20130 "parser_cocci_menhir.ml"
+# 20262 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20145,17 +20277,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 20151 "parser_cocci_menhir.ml"
+# 20283 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize = 
-# 1330 "parser_cocci_menhir.mly"
+# 1354 "parser_cocci_menhir.mly"
       (let (nm,pure,clt) = _1 in
       Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) )
-# 20159 "parser_cocci_menhir.ml"
+# 20291 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20177,9 +20309,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize2 = 
-# 1336 "parser_cocci_menhir.mly"
+# 1360 "parser_cocci_menhir.mly"
                             ( Ast0.wrap(Ast0.InitExpr(_1)) )
-# 20183 "parser_cocci_menhir.ml"
+# 20315 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20208,27 +20340,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 20214 "parser_cocci_menhir.ml"
+# 20346 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_initialize_list = Obj.magic _2 in
         let _1 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 20220 "parser_cocci_menhir.ml"
+# 20352 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize2 = 
-# 1338 "parser_cocci_menhir.mly"
+# 1362 "parser_cocci_menhir.mly"
     ( if P.struct_initializer _2
     then
       let il = P.drop_dot_commas _2 in
       Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false))
     else
       Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) )
-# 20232 "parser_cocci_menhir.ml"
+# 20364 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20258,17 +20390,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_initialize2 = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 20264 "parser_cocci_menhir.ml"
+# 20396 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_list_designator_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize2 = 
-# 1346 "parser_cocci_menhir.mly"
+# 1370 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) )
-# 20272 "parser_cocci_menhir.ml"
+# 20404 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20298,17 +20430,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_initialize2 = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 20304 "parser_cocci_menhir.ml"
+# 20436 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_mident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize2 = 
-# 1348 "parser_cocci_menhir.mly"
+# 1372 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) )
-# 20312 "parser_cocci_menhir.ml"
+# 20444 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20327,17 +20459,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 20333 "parser_cocci_menhir.ml"
+# 20465 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize2 = 
-# 1350 "parser_cocci_menhir.mly"
+# 1374 "parser_cocci_menhir.mly"
       (let (nm,pure,clt) = _1 in
       Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) )
-# 20341 "parser_cocci_menhir.ml"
+# 20473 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20356,14 +20488,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 134 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 20362 "parser_cocci_menhir.ml"
+# 20494 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize2 = 
-# 1353 "parser_cocci_menhir.mly"
+# 1377 "parser_cocci_menhir.mly"
       (let (nm,lenname,pure,clt) = _1 in
       let nm = P.clt2mcode nm clt in
       let lenname =
@@ -20372,7 +20504,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
        | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt)
        | Ast.CstLen n -> Ast0.CstListLen n in
       Ast0.wrap(Ast0.MetaInitList(nm,lenname,pure)) )
-# 20376 "parser_cocci_menhir.ml"
+# 20508 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20394,9 +20526,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize_list = 
-# 1373 "parser_cocci_menhir.mly"
+# 1397 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.DOTS(_1 P.mkidots (fun c -> Ast0.IComma c))) )
-# 20400 "parser_cocci_menhir.ml"
+# 20532 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20416,9 +20548,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_invalid = 
-# 1453 "parser_cocci_menhir.mly"
+# 1482 "parser_cocci_menhir.mly"
            ( raise (Semantic_cocci.Semantic "not matchable") )
-# 20422 "parser_cocci_menhir.ml"
+# 20554 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20433,9 +20565,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_is_expression = 
-# 318 "parser_cocci_menhir.mly"
+# 321 "parser_cocci_menhir.mly"
               ( false )
-# 20439 "parser_cocci_menhir.ml"
+# 20571 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20455,9 +20587,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_is_expression = 
-# 319 "parser_cocci_menhir.mly"
+# 322 "parser_cocci_menhir.mly"
               ( true )
-# 20461 "parser_cocci_menhir.ml"
+# 20593 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20483,9 +20615,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_ctype_ = 
-# 2375 "parser_cocci_menhir.mly"
+# 2411 "parser_cocci_menhir.mly"
                 ( Common.Left t )
-# 20489 "parser_cocci_menhir.ml"
+# 20621 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20511,9 +20643,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_ctype_ = 
-# 2376 "parser_cocci_menhir.mly"
+# 2412 "parser_cocci_menhir.mly"
                      ( Common.Right t )
-# 20517 "parser_cocci_menhir.ml"
+# 20649 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20539,9 +20671,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_decl_var_ = 
-# 2375 "parser_cocci_menhir.mly"
+# 2411 "parser_cocci_menhir.mly"
                 ( Common.Left t )
-# 20545 "parser_cocci_menhir.ml"
+# 20677 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20567,9 +20699,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_decl_var_ = 
-# 2376 "parser_cocci_menhir.mly"
+# 2412 "parser_cocci_menhir.mly"
                      ( Common.Right t )
-# 20573 "parser_cocci_menhir.ml"
+# 20705 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20595,9 +20727,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_eexpr_ = 
-# 2375 "parser_cocci_menhir.mly"
+# 2411 "parser_cocci_menhir.mly"
                 ( Common.Left t )
-# 20601 "parser_cocci_menhir.ml"
+# 20733 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20623,9 +20755,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_eexpr_ = 
-# 2376 "parser_cocci_menhir.mly"
+# 2412 "parser_cocci_menhir.mly"
                      ( Common.Right t )
-# 20629 "parser_cocci_menhir.ml"
+# 20761 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20647,13 +20779,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let t : 'tv_nest_start = Obj.magic t in
+        let t : 'tv_iso_statement = Obj.magic t in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_nest_start_ = 
-# 2375 "parser_cocci_menhir.mly"
+        let _v : 'tv_iso_iso_statement_ = 
+# 2411 "parser_cocci_menhir.mly"
                 ( Common.Left t )
-# 20657 "parser_cocci_menhir.ml"
+# 20789 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20675,13 +20807,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let t : 'tv_nest_start = Obj.magic t in
+        let t : 'tv_iso_statement = Obj.magic t in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_nest_start_ = 
-# 2376 "parser_cocci_menhir.mly"
+        let _v : 'tv_iso_iso_statement_ = 
+# 2412 "parser_cocci_menhir.mly"
                      ( Common.Right t )
-# 20685 "parser_cocci_menhir.ml"
+# 20817 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20703,13 +20835,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let t : 'tv_single_statement = Obj.magic t in
+        let t : 'tv_nest_start = Obj.magic t in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_single_statement_ = 
-# 2375 "parser_cocci_menhir.mly"
+        let _v : 'tv_iso_nest_start_ = 
+# 2411 "parser_cocci_menhir.mly"
                 ( Common.Left t )
-# 20713 "parser_cocci_menhir.ml"
+# 20845 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20731,13 +20863,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let t : 'tv_single_statement = Obj.magic t in
+        let t : 'tv_nest_start = Obj.magic t in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_single_statement_ = 
-# 2376 "parser_cocci_menhir.mly"
+        let _v : 'tv_iso_nest_start_ = 
+# 2412 "parser_cocci_menhir.mly"
                      ( Common.Right t )
-# 20741 "parser_cocci_menhir.ml"
+# 20873 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20773,13 +20905,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 20779 "parser_cocci_menhir.ml"
+# 20911 "parser_cocci_menhir.ml"
         ) = 
-# 2343 "parser_cocci_menhir.mly"
+# 2379 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.ExprTag x in P.iso_adjust fn fn e1 el )
-# 20783 "parser_cocci_menhir.ml"
+# 20915 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20815,13 +20947,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 20821 "parser_cocci_menhir.ml"
+# 20953 "parser_cocci_menhir.ml"
         ) = 
-# 2345 "parser_cocci_menhir.mly"
+# 2381 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.ArgExprTag x in P.iso_adjust fn fn e1 el )
-# 20825 "parser_cocci_menhir.ml"
+# 20957 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20857,13 +20989,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 20863 "parser_cocci_menhir.ml"
+# 20995 "parser_cocci_menhir.ml"
         ) = 
-# 2347 "parser_cocci_menhir.mly"
+# 2383 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.TestExprTag x in P.iso_adjust fn fn e1 el )
-# 20867 "parser_cocci_menhir.ml"
+# 20999 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20899,15 +21031,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 20905 "parser_cocci_menhir.ml"
+# 21037 "parser_cocci_menhir.ml"
         ) = 
-# 2349 "parser_cocci_menhir.mly"
+# 2385 "parser_cocci_menhir.mly"
     ( let ffn x = Ast0.ExprTag x in
       let fn x =  Ast0.TestExprTag x in
       P.iso_adjust ffn fn e1 el )
-# 20911 "parser_cocci_menhir.ml"
+# 21043 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20938,18 +21070,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let sl : 'tv_list_iso_single_statement__ = Obj.magic sl in
-        let s1 : 'tv_single_statement = Obj.magic s1 in
+        let sl : 'tv_list_iso_iso_statement__ = Obj.magic sl in
+        let s1 : 'tv_iso_statement = Obj.magic s1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 20949 "parser_cocci_menhir.ml"
+# 21081 "parser_cocci_menhir.ml"
         ) = 
-# 2353 "parser_cocci_menhir.mly"
+# 2389 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl )
-# 20953 "parser_cocci_menhir.ml"
+# 21085 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20985,13 +21117,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 20991 "parser_cocci_menhir.ml"
+# 21123 "parser_cocci_menhir.ml"
         ) = 
-# 2355 "parser_cocci_menhir.mly"
+# 2391 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl )
-# 20995 "parser_cocci_menhir.ml"
+# 21127 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21027,13 +21159,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 21033 "parser_cocci_menhir.ml"
+# 21165 "parser_cocci_menhir.ml"
         ) = 
-# 2357 "parser_cocci_menhir.mly"
+# 2393 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.DotsStmtTag x in P.iso_adjust fn fn e1 el )
-# 21037 "parser_cocci_menhir.ml"
+# 21169 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21069,11 +21201,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 21075 "parser_cocci_menhir.ml"
+# 21207 "parser_cocci_menhir.ml"
         ) = 
-# 2359 "parser_cocci_menhir.mly"
+# 2395 "parser_cocci_menhir.mly"
     ( let check_one = function
        [x] -> x
       | _ ->
@@ -21088,7 +21220,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
          | Common.Right x -> Common.Right(check_one x))
        dl in
     let fn x = Ast0.DeclTag x in P.iso_adjust fn fn d1 dl )
-# 21092 "parser_cocci_menhir.ml"
+# 21224 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21110,13 +21242,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos_m_ in
         let _v : (
-# 236 "parser_cocci_menhir.mly"
+# 239 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 21116 "parser_cocci_menhir.ml"
+# 21248 "parser_cocci_menhir.ml"
         ) = 
-# 253 "parser_cocci_menhir.mly"
+# 256 "parser_cocci_menhir.mly"
                          ( m "" )
-# 21120 "parser_cocci_menhir.ml"
+# 21252 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21142,13 +21274,65 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_nm_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 220 "parser_cocci_menhir.mly"
+# 223 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 21148 "parser_cocci_menhir.ml"
+# 21280 "parser_cocci_menhir.ml"
         ) = 
-# 268 "parser_cocci_menhir.mly"
+# 271 "parser_cocci_menhir.mly"
                       ( P.make_iso_rule_name_result (P.id2name nm) )
-# 21152 "parser_cocci_menhir.ml"
+# 21284 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_statement = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_iso_statement = 
+# 1188 "parser_cocci_menhir.mly"
+                                      ( _1 )
+# 21308 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_decl_var = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_iso_statement = 
+# 1190 "parser_cocci_menhir.mly"
+      ( match _1 with
+       [decl] ->
+         Ast0.wrap
+           (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),decl))
+      |        _ -> failwith "exactly one decl allowed in statement iso" )
+# 21336 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21167,16 +21351,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 21173 "parser_cocci_menhir.ml"
+# 21357 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_iter_ident = 
-# 2016 "parser_cocci_menhir.mly"
+# 2052 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 21180 "parser_cocci_menhir.ml"
+# 21364 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21195,17 +21379,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 130 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 21201 "parser_cocci_menhir.ml"
+# 21385 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_iter_ident = 
-# 2018 "parser_cocci_menhir.mly"
+# 2054 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,Ast.NoVal,pure)) )
-# 21209 "parser_cocci_menhir.ml"
+# 21393 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21222,7 +21406,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_TMul_ = 
 # 114 "standard.mly"
     ( [] )
-# 21226 "parser_cocci_menhir.ml"
+# 21410 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21247,16 +21431,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let xs : 'tv_list_TMul_ = Obj.magic xs in
         let x : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21253 "parser_cocci_menhir.ml"
+# 21437 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_xs_ in
         let _v : 'tv_list_TMul_ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21260 "parser_cocci_menhir.ml"
+# 21444 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21273,7 +21457,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_array_dec_ = 
 # 114 "standard.mly"
     ( [] )
-# 21277 "parser_cocci_menhir.ml"
+# 21461 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21303,7 +21487,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_array_dec_ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21307 "parser_cocci_menhir.ml"
+# 21491 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21320,7 +21504,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_case_line_ = 
 # 114 "standard.mly"
     ( [] )
-# 21324 "parser_cocci_menhir.ml"
+# 21508 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21350,7 +21534,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_case_line_ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21354 "parser_cocci_menhir.ml"
+# 21538 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21367,7 +21551,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_decl_var_ = 
 # 114 "standard.mly"
     ( [] )
-# 21371 "parser_cocci_menhir.ml"
+# 21555 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21397,7 +21581,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_decl_var_ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21401 "parser_cocci_menhir.ml"
+# 21585 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21414,7 +21598,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_designator_ = 
 # 114 "standard.mly"
     ( [] )
-# 21418 "parser_cocci_menhir.ml"
+# 21602 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21444,7 +21628,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_designator_ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21448 "parser_cocci_menhir.ml"
+# 21632 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21461,7 +21645,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_incl_ = 
 # 114 "standard.mly"
     ( [] )
-# 21465 "parser_cocci_menhir.ml"
+# 21649 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21491,7 +21675,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_incl_ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21495 "parser_cocci_menhir.ml"
+# 21679 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21508,7 +21692,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_iso_ctype__ = 
 # 114 "standard.mly"
     ( [] )
-# 21512 "parser_cocci_menhir.ml"
+# 21696 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21538,7 +21722,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_iso_ctype__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21542 "parser_cocci_menhir.ml"
+# 21726 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21555,7 +21739,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_iso_decl_var__ = 
 # 114 "standard.mly"
     ( [] )
-# 21559 "parser_cocci_menhir.ml"
+# 21743 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21585,7 +21769,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_iso_decl_var__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21589 "parser_cocci_menhir.ml"
+# 21773 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21602,7 +21786,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_iso_eexpr__ = 
 # 114 "standard.mly"
     ( [] )
-# 21606 "parser_cocci_menhir.ml"
+# 21790 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21632,7 +21816,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_iso_eexpr__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21636 "parser_cocci_menhir.ml"
+# 21820 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21646,10 +21830,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_list_iso_nest_start__ = 
+        let _v : 'tv_list_iso_iso_statement__ = 
 # 114 "standard.mly"
     ( [] )
-# 21653 "parser_cocci_menhir.ml"
+# 21837 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21672,14 +21856,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in
-        let x : 'tv_iso_nest_start_ = Obj.magic x in
+        let xs : 'tv_list_iso_iso_statement__ = Obj.magic xs in
+        let x : 'tv_iso_iso_statement_ = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_iso_nest_start__ = 
+        let _v : 'tv_list_iso_iso_statement__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21683 "parser_cocci_menhir.ml"
+# 21867 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21693,10 +21877,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_list_iso_single_statement__ = 
+        let _v : 'tv_list_iso_nest_start__ = 
 # 114 "standard.mly"
     ( [] )
-# 21700 "parser_cocci_menhir.ml"
+# 21884 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21719,14 +21903,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_iso_single_statement__ = Obj.magic xs in
-        let x : 'tv_iso_single_statement_ = Obj.magic x in
+        let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in
+        let x : 'tv_iso_nest_start_ = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_iso_single_statement__ = 
+        let _v : 'tv_list_iso_nest_start__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21730 "parser_cocci_menhir.ml"
+# 21914 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21743,7 +21927,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_ctype__ = 
 # 114 "standard.mly"
     ( [] )
-# 21747 "parser_cocci_menhir.ml"
+# 21931 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21773,7 +21957,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_ctype__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21777 "parser_cocci_menhir.ml"
+# 21961 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21790,7 +21974,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_disj_ident__ = 
 # 114 "standard.mly"
     ( [] )
-# 21794 "parser_cocci_menhir.ml"
+# 21978 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21820,7 +22004,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_disj_ident__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21824 "parser_cocci_menhir.ml"
+# 22008 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21837,7 +22021,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_eexpr__ = 
 # 114 "standard.mly"
     ( [] )
-# 21841 "parser_cocci_menhir.ml"
+# 22025 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21867,7 +22051,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_eexpr__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21871 "parser_cocci_menhir.ml"
+# 22055 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21884,7 +22068,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_fun_after_dots_or__ = 
 # 114 "standard.mly"
     ( [] )
-# 21888 "parser_cocci_menhir.ml"
+# 22072 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21914,7 +22098,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_fun_after_dots_or__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21918 "parser_cocci_menhir.ml"
+# 22102 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21931,7 +22115,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_fun_start__ = 
 # 114 "standard.mly"
     ( [] )
-# 21935 "parser_cocci_menhir.ml"
+# 22119 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21961,7 +22145,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_fun_start__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 21965 "parser_cocci_menhir.ml"
+# 22149 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21978,7 +22162,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_mctype__ = 
 # 114 "standard.mly"
     ( [] )
-# 21982 "parser_cocci_menhir.ml"
+# 22166 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22008,7 +22192,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_mctype__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 22012 "parser_cocci_menhir.ml"
+# 22196 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22025,7 +22209,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_rule_elem_statement__ = 
 # 114 "standard.mly"
     ( [] )
-# 22029 "parser_cocci_menhir.ml"
+# 22213 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22055,7 +22239,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_rule_elem_statement__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 22059 "parser_cocci_menhir.ml"
+# 22243 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22072,7 +22256,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_statement__ = 
 # 114 "standard.mly"
     ( [] )
-# 22076 "parser_cocci_menhir.ml"
+# 22260 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22102,7 +22286,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_statement__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 22106 "parser_cocci_menhir.ml"
+# 22290 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22119,7 +22303,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_struct_decl_one__ = 
 # 114 "standard.mly"
     ( [] )
-# 22123 "parser_cocci_menhir.ml"
+# 22307 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22149,7 +22333,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_mzl_struct_decl_one__ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 22153 "parser_cocci_menhir.ml"
+# 22337 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22166,7 +22350,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = 
 # 114 "standard.mly"
     ( [] )
-# 22170 "parser_cocci_menhir.ml"
+# 22354 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22205,13 +22389,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 70 "standard.mly"
     ( (x, y) )
-# 22209 "parser_cocci_menhir.ml"
+# 22393 "parser_cocci_menhir.ml"
           
         in
         
 # 116 "standard.mly"
     ( x :: xs )
-# 22215 "parser_cocci_menhir.ml"
+# 22399 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22228,7 +22412,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_whenppdecs_ = 
 # 114 "standard.mly"
     ( [] )
-# 22232 "parser_cocci_menhir.ml"
+# 22416 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22258,7 +22442,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_list_whenppdecs_ = 
 # 116 "standard.mly"
     ( x :: xs )
-# 22262 "parser_cocci_menhir.ml"
+# 22446 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22280,9 +22464,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_list_len = 
-# 422 "parser_cocci_menhir.mly"
+# 425 "parser_cocci_menhir.mly"
                            ( Common.Left _1 )
-# 22286 "parser_cocci_menhir.ml"
+# 22470 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22301,16 +22485,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 22307 "parser_cocci_menhir.ml"
+# 22491 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_list_len = 
-# 423 "parser_cocci_menhir.mly"
+# 426 "parser_cocci_menhir.mly"
        ( let (x,clt) = _1 in Common.Right (int_of_string x) )
-# 22314 "parser_cocci_menhir.ml"
+# 22498 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22327,7 +22511,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_choose_iso_ = 
 # 57 "standard.mly"
     ( [] )
-# 22331 "parser_cocci_menhir.ml"
+# 22515 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22351,7 +22535,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_choose_iso_ = 
 # 59 "standard.mly"
     ( x )
-# 22355 "parser_cocci_menhir.ml"
+# 22539 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22368,7 +22552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_disable_ = 
 # 57 "standard.mly"
     ( [] )
-# 22372 "parser_cocci_menhir.ml"
+# 22556 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22392,7 +22576,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_disable_ = 
 # 59 "standard.mly"
     ( x )
-# 22396 "parser_cocci_menhir.ml"
+# 22580 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22409,7 +22593,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_filespec_ = 
 # 57 "standard.mly"
     ( [] )
-# 22413 "parser_cocci_menhir.ml"
+# 22597 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22433,7 +22617,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_filespec_ = 
 # 59 "standard.mly"
     ( x )
-# 22437 "parser_cocci_menhir.ml"
+# 22621 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22450,7 +22634,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_minus_start_ = 
 # 57 "standard.mly"
     ( [] )
-# 22454 "parser_cocci_menhir.ml"
+# 22638 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22474,7 +22658,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_minus_start_ = 
 # 59 "standard.mly"
     ( x )
-# 22478 "parser_cocci_menhir.ml"
+# 22662 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22491,7 +22675,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_not_pos_ = 
 # 57 "standard.mly"
     ( [] )
-# 22495 "parser_cocci_menhir.ml"
+# 22679 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22515,7 +22699,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_not_pos_ = 
 # 59 "standard.mly"
     ( x )
-# 22519 "parser_cocci_menhir.ml"
+# 22703 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22532,7 +22716,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_plus_start_ = 
 # 57 "standard.mly"
     ( [] )
-# 22536 "parser_cocci_menhir.ml"
+# 22720 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22556,7 +22740,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_loption_plus_start_ = 
 # 59 "standard.mly"
     ( x )
-# 22560 "parser_cocci_menhir.ml"
+# 22744 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22575,16 +22759,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 22581 "parser_cocci_menhir.ml"
+# 22765 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mctype = 
-# 736 "parser_cocci_menhir.mly"
+# 739 "parser_cocci_menhir.mly"
         ( tmeta_to_type _1 )
-# 22588 "parser_cocci_menhir.ml"
+# 22772 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22606,9 +22790,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mctype = 
-# 737 "parser_cocci_menhir.mly"
+# 740 "parser_cocci_menhir.mly"
         (_1)
-# 22612 "parser_cocci_menhir.ml"
+# 22796 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22630,9 +22814,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_meta_exp_type = 
-# 617 "parser_cocci_menhir.mly"
+# 620 "parser_cocci_menhir.mly"
     ( [Ast0_cocci.ast0_type_to_type t] )
-# 22636 "parser_cocci_menhir.ml"
+# 22820 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22662,9 +22846,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_meta_exp_type = 
-# 619 "parser_cocci_menhir.mly"
+# 622 "parser_cocci_menhir.mly"
     ( [Type_cocci.Array (Ast0_cocci.ast0_type_to_type t)] )
-# 22668 "parser_cocci_menhir.ml"
+# 22852 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22700,11 +22884,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_meta_exp_type = 
-# 621 "parser_cocci_menhir.mly"
+# 624 "parser_cocci_menhir.mly"
     ( List.map
        (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m)
        t )
-# 22708 "parser_cocci_menhir.ml"
+# 22892 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22733,16 +22917,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_pure_ident = Obj.magic _3 in
         let _1 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 22739 "parser_cocci_menhir.ml"
+# 22923 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_meta_ident = 
-# 1740 "parser_cocci_menhir.mly"
+# 1776 "parser_cocci_menhir.mly"
                                    ( (Some _1,P.id2name _3) )
-# 22746 "parser_cocci_menhir.ml"
+# 22930 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22771,16 +22955,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_pure_ident_kwd = Obj.magic _3 in
         let _1 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 22777 "parser_cocci_menhir.ml"
+# 22961 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_meta_ident = 
-# 1741 "parser_cocci_menhir.mly"
+# 1777 "parser_cocci_menhir.mly"
                                    ( (Some _1,_3) )
-# 22784 "parser_cocci_menhir.ml"
+# 22968 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22802,13 +22986,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos_m_ in
         let _v : (
-# 228 "parser_cocci_menhir.mly"
+# 231 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 22808 "parser_cocci_menhir.ml"
+# 22992 "parser_cocci_menhir.ml"
         ) = 
-# 252 "parser_cocci_menhir.mly"
+# 255 "parser_cocci_menhir.mly"
                        ( m (!Ast0.rule_name) )
-# 22812 "parser_cocci_menhir.ml"
+# 22996 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22851,17 +23035,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 434 "parser_cocci_menhir.mly"
+# 437 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaMetaDecl(arity,name)) in
       !Data.add_meta_meta name pure; tok) )
-# 22859 "parser_cocci_menhir.ml"
+# 23043 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 22865 "parser_cocci_menhir.ml"
+# 23049 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22904,17 +23088,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 438 "parser_cocci_menhir.mly"
+# 441 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaParamDecl(arity,name)) in
       !Data.add_param_meta name pure; tok) )
-# 22912 "parser_cocci_menhir.ml"
+# 23096 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 22918 "parser_cocci_menhir.ml"
+# 23102 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22961,18 +23145,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 442 "parser_cocci_menhir.mly"
+# 445 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaParamListDecl(arity,name,len)) in
       !Data.add_paramlist_meta name len pure; tok) )
-# 22970 "parser_cocci_menhir.ml"
+# 23154 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 22976 "parser_cocci_menhir.ml"
+# 23160 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23019,18 +23203,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 447 "parser_cocci_menhir.mly"
+# 450 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaExpListDecl(arity,name,len)) in
       !Data.add_explist_meta name len pure; tok) )
-# 23028 "parser_cocci_menhir.ml"
+# 23212 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23034 "parser_cocci_menhir.ml"
+# 23218 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23073,17 +23257,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 452 "parser_cocci_menhir.mly"
+# 455 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaTypeDecl(arity,name)) in
       !Data.add_type_meta name pure; tok) )
-# 23081 "parser_cocci_menhir.ml"
+# 23265 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23087 "parser_cocci_menhir.ml"
+# 23271 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23126,17 +23310,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 456 "parser_cocci_menhir.mly"
+# 459 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaInitDecl(arity,name)) in
       !Data.add_init_meta name pure; tok) )
-# 23134 "parser_cocci_menhir.ml"
+# 23318 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23140 "parser_cocci_menhir.ml"
+# 23324 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23183,18 +23367,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 460 "parser_cocci_menhir.mly"
+# 463 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaInitListDecl(arity,name,len)) in
       !Data.add_initlist_meta name len pure; tok) )
-# 23192 "parser_cocci_menhir.ml"
+# 23376 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23198 "parser_cocci_menhir.ml"
+# 23382 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23237,17 +23421,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 465 "parser_cocci_menhir.mly"
+# 468 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaStmDecl(arity,name)) in
       !Data.add_stm_meta name pure; tok) )
-# 23245 "parser_cocci_menhir.ml"
+# 23429 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23251 "parser_cocci_menhir.ml"
+# 23435 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23290,17 +23474,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 469 "parser_cocci_menhir.mly"
+# 472 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaDeclDecl(arity,name)) in
       !Data.add_decl_meta name pure; tok) )
-# 23298 "parser_cocci_menhir.ml"
+# 23482 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23304 "parser_cocci_menhir.ml"
+# 23488 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23343,17 +23527,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 473 "parser_cocci_menhir.mly"
+# 476 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaFieldDecl(arity,name)) in
       !Data.add_field_meta name pure; tok) )
-# 23351 "parser_cocci_menhir.ml"
+# 23535 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23357 "parser_cocci_menhir.ml"
+# 23541 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23400,18 +23584,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 477 "parser_cocci_menhir.mly"
+# 480 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaFieldListDecl(arity,name,len)) in
       !Data.add_field_list_meta name len pure; tok) )
-# 23409 "parser_cocci_menhir.ml"
+# 23593 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23415 "parser_cocci_menhir.ml"
+# 23599 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23458,17 +23642,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 482 "parser_cocci_menhir.mly"
+# 485 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaStmListDecl(arity,name)) in
       !Data.add_stmlist_meta name pure; tok) )
-# 23466 "parser_cocci_menhir.ml"
+# 23650 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23472 "parser_cocci_menhir.ml"
+# 23656 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23511,18 +23695,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 486 "parser_cocci_menhir.mly"
+# 489 "parser_cocci_menhir.mly"
     ( (fun arity (_,name) pure check_meta ->
       if arity = Ast.NONE && pure = Ast0.Impure
       then (!Data.add_type_name name; [])
       else raise (Semantic_cocci.Semantic "bad typedef")) )
-# 23520 "parser_cocci_menhir.ml"
+# 23704 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23526 "parser_cocci_menhir.ml"
+# 23710 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23569,18 +23753,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 491 "parser_cocci_menhir.mly"
+# 494 "parser_cocci_menhir.mly"
     ( (fun arity (_,name) pure check_meta ->
       if arity = Ast.NONE && pure = Ast0.Impure
       then (!Data.add_declarer_name name; [])
       else raise (Semantic_cocci.Semantic "bad declarer")) )
-# 23578 "parser_cocci_menhir.ml"
+# 23762 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23584 "parser_cocci_menhir.ml"
+# 23768 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23627,18 +23811,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 496 "parser_cocci_menhir.mly"
+# 499 "parser_cocci_menhir.mly"
     ( (fun arity (_,name) pure check_meta ->
       if arity = Ast.NONE && pure = Ast0.Impure
       then (!Data.add_iterator_name name; [])
       else raise (Semantic_cocci.Semantic "bad iterator")) )
-# 23636 "parser_cocci_menhir.ml"
+# 23820 "parser_cocci_menhir.ml"
           
         in
         
-# 342 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
-# 23642 "parser_cocci_menhir.ml"
+# 23826 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23673,17 +23857,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__4_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 427 "parser_cocci_menhir.mly"
+# 430 "parser_cocci_menhir.mly"
     ( (fun name check_meta seed ->
       let tok = check_meta(Ast.MetaFreshIdDecl(name,seed)) in
       !Data.add_fresh_id_meta name seed; tok) )
-# 23681 "parser_cocci_menhir.ml"
+# 23865 "parser_cocci_menhir.ml"
           
         in
         
-# 345 "parser_cocci_menhir.mly"
+# 348 "parser_cocci_menhir.mly"
     ( P.create_fresh_metadec kindfn ids )
-# 23687 "parser_cocci_menhir.ml"
+# 23871 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23726,7 +23910,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 503 "parser_cocci_menhir.mly"
+# 506 "parser_cocci_menhir.mly"
     (
      let idfn arity name pure check_meta constraints =
        let tok = check_meta(Ast.MetaIdDecl(arity,name)) in
@@ -23743,17 +23927,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let tok = check_meta(Ast.MetaIdDecl(arity,name)) in
         !Data.add_virt_id_meta_not_found name pure; tok in
      (idfn,virtfn) )
-# 23747 "parser_cocci_menhir.ml"
+# 23931 "parser_cocci_menhir.ml"
           
         in
         
-# 351 "parser_cocci_menhir.mly"
+# 354 "parser_cocci_menhir.mly"
     ( let (normal,virt) = Common.partition_either (fun x -> x) ids in
     let (idfn,virtfn) = kindfn in
     function cr ->
       (P.create_metadec_with_constraints ar ispure idfn normal cr) @
       (P.create_metadec_virt ar ispure virtfn virt cr) )
-# 23757 "parser_cocci_menhir.ml"
+# 23941 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23796,17 +23980,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 522 "parser_cocci_menhir.mly"
+# 525 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaFuncDecl(arity,name)) in
       !Data.add_func_meta name constraints pure; tok) )
-# 23804 "parser_cocci_menhir.ml"
+# 23988 "parser_cocci_menhir.ml"
           
         in
         
-# 360 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 23810 "parser_cocci_menhir.ml"
+# 23994 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23853,18 +24037,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 526 "parser_cocci_menhir.mly"
+# 529 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaLocalFuncDecl(arity,name)) in
       !Data.add_local_func_meta name constraints pure;
       tok) )
-# 23862 "parser_cocci_menhir.ml"
+# 24046 "parser_cocci_menhir.ml"
           
         in
         
-# 360 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 23868 "parser_cocci_menhir.ml"
+# 24052 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23907,17 +24091,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 531 "parser_cocci_menhir.mly"
+# 534 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaDeclarerDecl(arity,name)) in
       !Data.add_declarer_meta name constraints pure; tok) )
-# 23915 "parser_cocci_menhir.ml"
+# 24099 "parser_cocci_menhir.ml"
           
         in
         
-# 360 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 23921 "parser_cocci_menhir.ml"
+# 24105 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23960,17 +24144,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 535 "parser_cocci_menhir.mly"
+# 538 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaIteratorDecl(arity,name)) in
       !Data.add_iterator_meta name constraints pure; tok) )
-# 23968 "parser_cocci_menhir.ml"
+# 24152 "parser_cocci_menhir.ml"
           
         in
         
-# 360 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 23974 "parser_cocci_menhir.ml"
+# 24158 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24013,17 +24197,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 541 "parser_cocci_menhir.mly"
+# 544 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaErrDecl(arity,name)) in
       !Data.add_err_meta name constraints pure; tok) )
-# 24021 "parser_cocci_menhir.ml"
+# 24205 "parser_cocci_menhir.ml"
           
         in
         
-# 365 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24027 "parser_cocci_menhir.ml"
+# 24211 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24076,11 +24260,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
 # 39 "standard.mly"
     ( None )
-# 24080 "parser_cocci_menhir.ml"
+# 24264 "parser_cocci_menhir.ml"
             
           in
           
-# 545 "parser_cocci_menhir.mly"
+# 548 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       match l with
        None ->
@@ -24089,13 +24273,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       | Some _ ->
          !Data.add_local_idexp_meta ty name constraints pure;
          check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
-# 24093 "parser_cocci_menhir.ml"
+# 24277 "parser_cocci_menhir.ml"
           
         in
         
-# 365 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24099 "parser_cocci_menhir.ml"
+# 24283 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24156,11 +24340,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
 # 41 "standard.mly"
     ( Some x )
-# 24160 "parser_cocci_menhir.ml"
+# 24344 "parser_cocci_menhir.ml"
             
           in
           
-# 545 "parser_cocci_menhir.mly"
+# 548 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       match l with
        None ->
@@ -24169,13 +24353,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       | Some _ ->
          !Data.add_local_idexp_meta ty name constraints pure;
          check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
-# 24173 "parser_cocci_menhir.ml"
+# 24357 "parser_cocci_menhir.ml"
           
         in
         
-# 365 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24179 "parser_cocci_menhir.ml"
+# 24363 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24232,7 +24416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let m = m0 in
           let l = l0 in
           
-# 554 "parser_cocci_menhir.mly"
+# 557 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in
       match l with
@@ -24242,13 +24426,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       | Some _ ->
          !Data.add_local_idexp_meta ty name constraints pure;
          check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
-# 24246 "parser_cocci_menhir.ml"
+# 24430 "parser_cocci_menhir.ml"
           
         in
         
-# 365 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24252 "parser_cocci_menhir.ml"
+# 24436 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24298,18 +24482,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_metadec = let kindfn =
           let ty = ty0 in
           
-# 564 "parser_cocci_menhir.mly"
+# 567 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let ty = Some [ty] in
       let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
       !Data.add_exp_meta ty name constraints pure; tok) )
-# 24307 "parser_cocci_menhir.ml"
+# 24491 "parser_cocci_menhir.ml"
           
         in
         
-# 365 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24313 "parser_cocci_menhir.ml"
+# 24497 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24355,21 +24539,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
 # 39 "standard.mly"
     ( None )
-# 24359 "parser_cocci_menhir.ml"
+# 24543 "parser_cocci_menhir.ml"
             
           in
           
-# 569 "parser_cocci_menhir.mly"
+# 572 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in
       !Data.add_const_meta ty name constraints pure; tok) )
-# 24367 "parser_cocci_menhir.ml"
+# 24551 "parser_cocci_menhir.ml"
           
         in
         
-# 365 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24373 "parser_cocci_menhir.ml"
+# 24557 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24423,21 +24607,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
 # 41 "standard.mly"
     ( Some x )
-# 24427 "parser_cocci_menhir.ml"
+# 24611 "parser_cocci_menhir.ml"
             
           in
           
-# 569 "parser_cocci_menhir.mly"
+# 572 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in
       !Data.add_const_meta ty name constraints pure; tok) )
-# 24435 "parser_cocci_menhir.ml"
+# 24619 "parser_cocci_menhir.ml"
           
         in
         
-# 365 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24441 "parser_cocci_menhir.ml"
+# 24625 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24480,17 +24664,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 586 "parser_cocci_menhir.mly"
+# 589 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let tok = check_meta(Ast.MetaExpDecl(arity,name,None)) in
       !Data.add_exp_meta None name constraints pure; tok) )
-# 24488 "parser_cocci_menhir.ml"
+# 24672 "parser_cocci_menhir.ml"
           
         in
         
-# 370 "parser_cocci_menhir.mly"
+# 373 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24494 "parser_cocci_menhir.ml"
+# 24678 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24536,7 +24720,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_metadec = let kindfn =
           let vl = vl0 in
           
-# 590 "parser_cocci_menhir.mly"
+# 593 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let ty = Some vl in
       (match constraints with
@@ -24561,13 +24745,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
       !Data.add_exp_meta ty name constraints pure; tok)
     )
-# 24565 "parser_cocci_menhir.ml"
+# 24749 "parser_cocci_menhir.ml"
           
         in
         
-# 370 "parser_cocci_menhir.mly"
+# 373 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
-# 24571 "parser_cocci_menhir.ml"
+# 24755 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24609,7 +24793,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = 
-# 376 "parser_cocci_menhir.mly"
+# 379 "parser_cocci_menhir.mly"
     ( (if !Data.in_generating
       then failwith "position variables not allowed in a generated rule file");
       let kindfn arity name pure check_meta constraints =
@@ -24617,7 +24801,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       let any = match a with None -> Ast.PER | Some _ -> Ast.ALL in
       !Data.add_pos_meta name constraints any; tok in
     P.create_metadec_with_constraints ar false kindfn ids )
-# 24621 "parser_cocci_menhir.ml"
+# 24805 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24677,13 +24861,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 386 "parser_cocci_menhir.mly"
+# 389 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaParamListDecl(arity,name,lenname)) in
          !Data.add_paramlist_meta name lenname pure; tok)
        len ids )
-# 24687 "parser_cocci_menhir.ml"
+# 24871 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24743,13 +24927,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 394 "parser_cocci_menhir.mly"
+# 397 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaExpListDecl(arity,name,lenname)) in
          !Data.add_explist_meta name lenname pure; tok)
        len ids )
-# 24753 "parser_cocci_menhir.ml"
+# 24937 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24809,13 +24993,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 402 "parser_cocci_menhir.mly"
+# 405 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaFieldListDecl(arity,name,lenname)) in
          !Data.add_field_list_meta name lenname pure; tok)
        len ids )
-# 24819 "parser_cocci_menhir.ml"
+# 25003 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24875,13 +25059,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 410 "parser_cocci_menhir.mly"
+# 413 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaInitListDecl(arity,name,lenname)) in
          !Data.add_initlist_meta name lenname pure; tok)
        len ids )
-# 24885 "parser_cocci_menhir.ml"
+# 25069 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24911,12 +25095,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_metadec = 
-# 416 "parser_cocci_menhir.mly"
+# 419 "parser_cocci_menhir.mly"
     ( (fun _ ->
         let add_sym = fun (nm,_) -> !Data.add_symbol_meta nm in
           List.iter add_sym ids; [])
     )
-# 24920 "parser_cocci_menhir.ml"
+# 25104 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24938,9 +25122,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 1989 "parser_cocci_menhir.mly"
+# 2025 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 24944 "parser_cocci_menhir.ml"
+# 25128 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24962,9 +25146,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 1990 "parser_cocci_menhir.mly"
+# 2026 "parser_cocci_menhir.mly"
                          ( _1 )
-# 24968 "parser_cocci_menhir.ml"
+# 25152 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24983,16 +25167,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 24989 "parser_cocci_menhir.ml"
+# 25173 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 1991 "parser_cocci_menhir.mly"
+# 2027 "parser_cocci_menhir.mly"
              ( tmeta_to_ident _1 )
-# 24996 "parser_cocci_menhir.ml"
+# 25180 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25011,17 +25195,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 128 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
-# 25017 "parser_cocci_menhir.ml"
+# 25201 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 1993 "parser_cocci_menhir.mly"
+# 2029 "parser_cocci_menhir.mly"
          ( let (nm,constraints,seed,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,seed,pure)) )
-# 25025 "parser_cocci_menhir.ml"
+# 25209 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25049,9 +25233,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_ctype_ctype_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25055 "parser_cocci_menhir.ml"
+# 25239 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25079,9 +25263,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_disj_ident_disj_ident_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25085 "parser_cocci_menhir.ml"
+# 25269 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25109,9 +25293,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_eexpr_eexpr_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25115 "parser_cocci_menhir.ml"
+# 25299 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25139,9 +25323,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_expr_eexpr_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25145 "parser_cocci_menhir.ml"
+# 25329 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25169,9 +25353,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25175 "parser_cocci_menhir.ml"
+# 25359 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25199,9 +25383,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_fun_start_fun_start_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25205 "parser_cocci_menhir.ml"
+# 25389 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25229,9 +25413,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_mctype_mctype_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25235 "parser_cocci_menhir.ml"
+# 25419 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25259,9 +25443,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25265 "parser_cocci_menhir.ml"
+# 25449 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25289,9 +25473,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_statement_statement_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25295 "parser_cocci_menhir.ml"
+# 25479 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25319,9 +25503,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_struct_decl_one_struct_decl_one_ = 
-# 2313 "parser_cocci_menhir.mly"
+# 2349 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 25325 "parser_cocci_menhir.ml"
+# 25509 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25349,11 +25533,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_minus_body = 
-# 843 "parser_cocci_menhir.mly"
+# 846 "parser_cocci_menhir.mly"
     ( match f@b(*@ew*) with
       [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
     | code -> code )
-# 25357 "parser_cocci_menhir.ml"
+# 25541 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25381,11 +25565,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_minus_exp_body = 
-# 857 "parser_cocci_menhir.mly"
+# 860 "parser_cocci_menhir.mly"
     ( match f@[b](*@ew*) with
       [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
     | code -> code )
-# 25389 "parser_cocci_menhir.ml"
+# 25573 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25411,13 +25595,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 208 "parser_cocci_menhir.mly"
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 25417 "parser_cocci_menhir.ml"
+# 25601 "parser_cocci_menhir.ml"
         ) = 
-# 248 "parser_cocci_menhir.mly"
+# 251 "parser_cocci_menhir.mly"
                                    ( _1 )
-# 25421 "parser_cocci_menhir.ml"
+# 25605 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25443,13 +25627,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 208 "parser_cocci_menhir.mly"
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 25449 "parser_cocci_menhir.ml"
+# 25633 "parser_cocci_menhir.ml"
         ) = 
-# 248 "parser_cocci_menhir.mly"
+# 251 "parser_cocci_menhir.mly"
                                                                        ( m )
-# 25453 "parser_cocci_menhir.ml"
+# 25637 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25475,13 +25659,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 208 "parser_cocci_menhir.mly"
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 25481 "parser_cocci_menhir.ml"
+# 25665 "parser_cocci_menhir.ml"
         ) = 
-# 249 "parser_cocci_menhir.mly"
+# 252 "parser_cocci_menhir.mly"
                          ( m )
-# 25485 "parser_cocci_menhir.ml"
+# 25669 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25507,13 +25691,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 205 "parser_cocci_menhir.mly"
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 25513 "parser_cocci_menhir.ml"
+# 25697 "parser_cocci_menhir.ml"
         ) = 
-# 244 "parser_cocci_menhir.mly"
+# 247 "parser_cocci_menhir.mly"
                            ( _1 )
-# 25517 "parser_cocci_menhir.ml"
+# 25701 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25539,13 +25723,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 205 "parser_cocci_menhir.mly"
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 25545 "parser_cocci_menhir.ml"
+# 25729 "parser_cocci_menhir.ml"
         ) = 
-# 244 "parser_cocci_menhir.mly"
+# 247 "parser_cocci_menhir.mly"
                                                            ( m )
-# 25549 "parser_cocci_menhir.ml"
+# 25733 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25571,13 +25755,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 205 "parser_cocci_menhir.mly"
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 25577 "parser_cocci_menhir.ml"
+# 25761 "parser_cocci_menhir.ml"
         ) = 
-# 245 "parser_cocci_menhir.mly"
+# 248 "parser_cocci_menhir.mly"
                      ( m )
-# 25581 "parser_cocci_menhir.ml"
+# 25765 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25599,9 +25783,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2138 "parser_cocci_menhir.mly"
+# 2174 "parser_cocci_menhir.mly"
                          ( [Ast0.wrap(Ast0.OTHER(_1))] )
-# 25605 "parser_cocci_menhir.ml"
+# 25789 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25623,9 +25807,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2139 "parser_cocci_menhir.mly"
+# 2175 "parser_cocci_menhir.mly"
                          ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
-# 25629 "parser_cocci_menhir.ml"
+# 25813 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25647,9 +25831,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2140 "parser_cocci_menhir.mly"
+# 2176 "parser_cocci_menhir.mly"
                     ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
-# 25653 "parser_cocci_menhir.ml"
+# 25837 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25671,9 +25855,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2142 "parser_cocci_menhir.mly"
+# 2178 "parser_cocci_menhir.mly"
     ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 )
-# 25677 "parser_cocci_menhir.ml"
+# 25861 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25698,16 +25882,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_ctype = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25704 "parser_cocci_menhir.ml"
+# 25888 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_ctype_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25711 "parser_cocci_menhir.ml"
+# 25895 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25732,16 +25916,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_disj_ident = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25738 "parser_cocci_menhir.ml"
+# 25922 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_disj_ident_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25745 "parser_cocci_menhir.ml"
+# 25929 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25766,16 +25950,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_eexpr = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25772 "parser_cocci_menhir.ml"
+# 25956 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_eexpr_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25779 "parser_cocci_menhir.ml"
+# 25963 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25800,16 +25984,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_fun_after_dots_or = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25806 "parser_cocci_menhir.ml"
+# 25990 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_fun_after_dots_or_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25813 "parser_cocci_menhir.ml"
+# 25997 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25834,16 +26018,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_fun_start = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25840 "parser_cocci_menhir.ml"
+# 26024 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_fun_start_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25847 "parser_cocci_menhir.ml"
+# 26031 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25868,16 +26052,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_mctype = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25874 "parser_cocci_menhir.ml"
+# 26058 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_mctype_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25881 "parser_cocci_menhir.ml"
+# 26065 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25902,16 +26086,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_rule_elem_statement = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25908 "parser_cocci_menhir.ml"
+# 26092 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_rule_elem_statement_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25915 "parser_cocci_menhir.ml"
+# 26099 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25936,16 +26120,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_statement = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25942 "parser_cocci_menhir.ml"
+# 26126 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_statement_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25949 "parser_cocci_menhir.ml"
+# 26133 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25970,16 +26154,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_struct_decl_one = Obj.magic b in
         let a : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 25976 "parser_cocci_menhir.ml"
+# 26160 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_struct_decl_one_ = 
-# 2316 "parser_cocci_menhir.mly"
+# 2352 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
-# 25983 "parser_cocci_menhir.ml"
+# 26167 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26001,9 +26185,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_name_opt_decl = 
-# 1083 "parser_cocci_menhir.mly"
+# 1086 "parser_cocci_menhir.mly"
             ( _1 )
-# 26007 "parser_cocci_menhir.ml"
+# 26191 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26052,43 +26236,43 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26058 "parser_cocci_menhir.ml"
+# 26242 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26064 "parser_cocci_menhir.ml"
+# 26248 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26069 "parser_cocci_menhir.ml"
+# 26253 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let s : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26074 "parser_cocci_menhir.ml"
+# 26258 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26079 "parser_cocci_menhir.ml"
+# 26263 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_rp1_ in
         let _v : 'tv_name_opt_decl = 
-# 1086 "parser_cocci_menhir.mly"
+# 1089 "parser_cocci_menhir.mly"
         ( let fnptr =
          Ast0.wrap
            (Ast0.FunctionPointer
               (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp,
                P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in
        Ast0.wrap(Ast0.Param(fnptr, None)) )
-# 26092 "parser_cocci_menhir.ml"
+# 26276 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26116,9 +26300,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_dots = 
-# 2258 "parser_cocci_menhir.mly"
+# 2294 "parser_cocci_menhir.mly"
                                      (_1@_2)
-# 26122 "parser_cocci_menhir.ml"
+# 26306 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26144,9 +26328,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_dots = 
-# 2259 "parser_cocci_menhir.mly"
+# 2295 "parser_cocci_menhir.mly"
                                 (_2)
-# 26150 "parser_cocci_menhir.ml"
+# 26334 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26174,9 +26358,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_dots = 
-# 2260 "parser_cocci_menhir.mly"
+# 2296 "parser_cocci_menhir.mly"
                                 ((Ast0.wrap(Ast0.Exp(_1)))::_2)
-# 26180 "parser_cocci_menhir.ml"
+# 26364 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26191,9 +26375,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_nest_after_exp = 
-# 2268 "parser_cocci_menhir.mly"
+# 2304 "parser_cocci_menhir.mly"
                                 ([])
-# 26197 "parser_cocci_menhir.ml"
+# 26381 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26221,9 +26405,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_exp = 
-# 2269 "parser_cocci_menhir.mly"
+# 2305 "parser_cocci_menhir.mly"
                                 (_1::_2)
-# 26227 "parser_cocci_menhir.ml"
+# 26411 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26238,9 +26422,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_nest_after_stm = 
-# 2263 "parser_cocci_menhir.mly"
+# 2299 "parser_cocci_menhir.mly"
                                 ([])
-# 26244 "parser_cocci_menhir.ml"
+# 26428 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26268,9 +26452,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_stm = 
-# 2264 "parser_cocci_menhir.mly"
+# 2300 "parser_cocci_menhir.mly"
                                 (_1::_2)
-# 26274 "parser_cocci_menhir.ml"
+# 26458 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26298,9 +26482,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_stm = 
-# 2265 "parser_cocci_menhir.mly"
+# 2301 "parser_cocci_menhir.mly"
                                 (_1@_2)
-# 26304 "parser_cocci_menhir.ml"
+# 26488 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26329,24 +26513,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26335 "parser_cocci_menhir.ml"
+# 26519 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
         let _1 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26341 "parser_cocci_menhir.ml"
+# 26525 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_nest_expressions = 
-# 1462 "parser_cocci_menhir.mly"
+# 1491 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1,
                              Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
                              P.clt2mcode "...>" c, None, false)) )
-# 26350 "parser_cocci_menhir.ml"
+# 26534 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26375,24 +26559,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26381 "parser_cocci_menhir.ml"
+# 26565 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
         let _1 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26387 "parser_cocci_menhir.ml"
+# 26571 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_nest_expressions = 
-# 1466 "parser_cocci_menhir.mly"
+# 1495 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1,
                              Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
                              P.clt2mcode "...+>" c, None, true)) )
-# 26396 "parser_cocci_menhir.ml"
+# 26580 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26411,16 +26595,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 26417 "parser_cocci_menhir.ml"
+# 26601 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nest_expressions = 
-# 1469 "parser_cocci_menhir.mly"
+# 1498 "parser_cocci_menhir.mly"
         ( tmeta_to_exp _1 )
-# 26424 "parser_cocci_menhir.ml"
+# 26608 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26442,9 +26626,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nest_start = 
-# 2255 "parser_cocci_menhir.mly"
+# 2291 "parser_cocci_menhir.mly"
                    ( Ast0.wrap(Ast0.DOTS(_1)) )
-# 26448 "parser_cocci_menhir.ml"
+# 26632 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26464,13 +26648,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : (
-# 239 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
       (unit)
-# 26470 "parser_cocci_menhir.ml"
+# 26654 "parser_cocci_menhir.ml"
         ) = 
-# 2383 "parser_cocci_menhir.mly"
+# 2419 "parser_cocci_menhir.mly"
                     ( () )
-# 26474 "parser_cocci_menhir.ml"
+# 26658 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26494,13 +26678,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 239 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
       (unit)
-# 26500 "parser_cocci_menhir.ml"
+# 26684 "parser_cocci_menhir.ml"
         ) = 
-# 2384 "parser_cocci_menhir.mly"
+# 2420 "parser_cocci_menhir.mly"
                     ( () )
-# 26504 "parser_cocci_menhir.ml"
+# 26688 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26520,13 +26704,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : (
-# 239 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
       (unit)
-# 26526 "parser_cocci_menhir.ml"
+# 26710 "parser_cocci_menhir.ml"
         ) = 
-# 2385 "parser_cocci_menhir.mly"
+# 2421 "parser_cocci_menhir.mly"
                     ( () )
-# 26530 "parser_cocci_menhir.ml"
+# 26714 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26554,10 +26738,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_g_ in
         let _endpos = _endpos_dg_ in
         let _v : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = 
-# 1702 "parser_cocci_menhir.mly"
+# 1738 "parser_cocci_menhir.mly"
   ( function dot_builder ->
       g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) )
-# 26561 "parser_cocci_menhir.ml"
+# 26745 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26576,16 +26760,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let x : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26582 "parser_cocci_menhir.ml"
+# 26766 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_x_ in
         let _v : 'tv_nonempty_list_TMul_ = 
 # 124 "standard.mly"
     ( [ x ] )
-# 26589 "parser_cocci_menhir.ml"
+# 26773 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26610,16 +26794,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in
         let x : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26616 "parser_cocci_menhir.ml"
+# 26800 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_xs_ in
         let _v : 'tv_nonempty_list_TMul_ = 
 # 126 "standard.mly"
     ( x :: xs )
-# 26623 "parser_cocci_menhir.ml"
+# 26807 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26641,9 +26825,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2065 "parser_cocci_menhir.mly"
+# 2101 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 26647 "parser_cocci_menhir.ml"
+# 26831 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26667,18 +26851,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26673 "parser_cocci_menhir.ml"
+# 26857 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_aexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2067 "parser_cocci_menhir.mly"
+# 2103 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 26682 "parser_cocci_menhir.ml"
+# 26866 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26708,19 +26892,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26714 "parser_cocci_menhir.ml"
+# 26898 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_aexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2070 "parser_cocci_menhir.mly"
+# 2106 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 26724 "parser_cocci_menhir.ml"
+# 26908 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26746,9 +26930,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2073 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 26752 "parser_cocci_menhir.ml"
+# 26936 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26767,16 +26951,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26773 "parser_cocci_menhir.ml"
+# 26957 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2074 "parser_cocci_menhir.mly"
+# 2110 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
-# 26780 "parser_cocci_menhir.ml"
+# 26964 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26800,22 +26984,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26806 "parser_cocci_menhir.ml"
+# 26990 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26811 "parser_cocci_menhir.ml"
+# 26995 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2076 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 26819 "parser_cocci_menhir.ml"
+# 27003 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26845,24 +27029,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_aexpr_TEllipsis_ = Obj.magic r in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26851 "parser_cocci_menhir.ml"
+# 27035 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26856 "parser_cocci_menhir.ml"
+# 27040 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2079 "parser_cocci_menhir.mly"
+# 2115 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (r build_dots build_comma) )
-# 26866 "parser_cocci_menhir.ml"
+# 27050 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26884,9 +27068,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2065 "parser_cocci_menhir.mly"
+# 2101 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 26890 "parser_cocci_menhir.ml"
+# 27074 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26910,18 +27094,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26916 "parser_cocci_menhir.ml"
+# 27100 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_dparam = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2067 "parser_cocci_menhir.mly"
+# 2103 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 26925 "parser_cocci_menhir.ml"
+# 27109 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26951,19 +27135,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26957 "parser_cocci_menhir.ml"
+# 27141 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_dparam = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2070 "parser_cocci_menhir.mly"
+# 2106 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 26967 "parser_cocci_menhir.ml"
+# 27151 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26989,9 +27173,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2073 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 26995 "parser_cocci_menhir.ml"
+# 27179 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27010,16 +27194,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27016 "parser_cocci_menhir.ml"
+# 27200 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2074 "parser_cocci_menhir.mly"
+# 2110 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
-# 27023 "parser_cocci_menhir.ml"
+# 27207 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27043,22 +27227,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27049 "parser_cocci_menhir.ml"
+# 27233 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27054 "parser_cocci_menhir.ml"
+# 27238 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2076 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27062 "parser_cocci_menhir.ml"
+# 27246 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27088,24 +27272,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_dparam_TEllipsis_ = Obj.magic r in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27094 "parser_cocci_menhir.ml"
+# 27278 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27099 "parser_cocci_menhir.ml"
+# 27283 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2079 "parser_cocci_menhir.mly"
+# 2115 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (r build_dots build_comma) )
-# 27109 "parser_cocci_menhir.ml"
+# 27293 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27127,9 +27311,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2065 "parser_cocci_menhir.mly"
+# 2101 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 27133 "parser_cocci_menhir.ml"
+# 27317 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27153,18 +27337,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27159 "parser_cocci_menhir.ml"
+# 27343 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_enum_decl_one = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2067 "parser_cocci_menhir.mly"
+# 2103 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27168 "parser_cocci_menhir.ml"
+# 27352 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27194,19 +27378,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27200 "parser_cocci_menhir.ml"
+# 27384 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_enum_decl_one = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2070 "parser_cocci_menhir.mly"
+# 2106 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 27210 "parser_cocci_menhir.ml"
+# 27394 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27232,9 +27416,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2073 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 27238 "parser_cocci_menhir.ml"
+# 27422 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27256,9 +27440,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2074 "parser_cocci_menhir.mly"
+# 2110 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
-# 27262 "parser_cocci_menhir.ml"
+# 27446 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27282,18 +27466,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27288 "parser_cocci_menhir.ml"
+# 27472 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : 'tv_edots_when_TEllipsis_enum_decl_one_ = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2076 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27297 "parser_cocci_menhir.ml"
+# 27481 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27323,20 +27507,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic r in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27329 "parser_cocci_menhir.ml"
+# 27513 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : 'tv_edots_when_TEllipsis_enum_decl_one_ = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2079 "parser_cocci_menhir.mly"
+# 2115 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (r build_dots build_comma) )
-# 27340 "parser_cocci_menhir.ml"
+# 27524 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27358,9 +27542,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2065 "parser_cocci_menhir.mly"
+# 2101 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 27364 "parser_cocci_menhir.ml"
+# 27548 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27384,18 +27568,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27390 "parser_cocci_menhir.ml"
+# 27574 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_initialize2 = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2067 "parser_cocci_menhir.mly"
+# 2103 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27399 "parser_cocci_menhir.ml"
+# 27583 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27425,19 +27609,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27431 "parser_cocci_menhir.ml"
+# 27615 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_initialize2 = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2070 "parser_cocci_menhir.mly"
+# 2106 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 27441 "parser_cocci_menhir.ml"
+# 27625 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27463,9 +27647,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2073 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 27469 "parser_cocci_menhir.ml"
+# 27653 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27487,9 +27671,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2074 "parser_cocci_menhir.mly"
+# 2110 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
-# 27493 "parser_cocci_menhir.ml"
+# 27677 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27513,18 +27697,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27519 "parser_cocci_menhir.ml"
+# 27703 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2076 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27528 "parser_cocci_menhir.ml"
+# 27712 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27554,20 +27738,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic r in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27560 "parser_cocci_menhir.ml"
+# 27744 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2079 "parser_cocci_menhir.mly"
+# 2115 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (r build_dots build_comma) )
-# 27571 "parser_cocci_menhir.ml"
+# 27755 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27589,9 +27773,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2065 "parser_cocci_menhir.mly"
+# 2101 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 27595 "parser_cocci_menhir.ml"
+# 27779 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27615,18 +27799,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27621 "parser_cocci_menhir.ml"
+# 27805 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2067 "parser_cocci_menhir.mly"
+# 2103 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27630 "parser_cocci_menhir.ml"
+# 27814 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27656,19 +27840,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27662 "parser_cocci_menhir.ml"
+# 27846 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2070 "parser_cocci_menhir.mly"
+# 2106 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 27672 "parser_cocci_menhir.ml"
+# 27856 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27694,9 +27878,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2073 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 27700 "parser_cocci_menhir.ml"
+# 27884 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27715,16 +27899,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27721 "parser_cocci_menhir.ml"
+# 27905 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2074 "parser_cocci_menhir.mly"
+# 2110 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
-# 27728 "parser_cocci_menhir.ml"
+# 27912 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27748,22 +27932,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27754 "parser_cocci_menhir.ml"
+# 27938 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27759 "parser_cocci_menhir.ml"
+# 27943 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2076 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27767 "parser_cocci_menhir.ml"
+# 27951 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27793,24 +27977,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_one_dec_decl__TEllipsis_ = Obj.magic r in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27799 "parser_cocci_menhir.ml"
+# 27983 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27804 "parser_cocci_menhir.ml"
+# 27988 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2079 "parser_cocci_menhir.mly"
+# 2115 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (r build_dots build_comma) )
-# 27814 "parser_cocci_menhir.ml"
+# 27998 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27832,9 +28016,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2065 "parser_cocci_menhir.mly"
+# 2101 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
-# 27838 "parser_cocci_menhir.ml"
+# 28022 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27858,18 +28042,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27864 "parser_cocci_menhir.ml"
+# 28048 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2067 "parser_cocci_menhir.mly"
+# 2103 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 27873 "parser_cocci_menhir.ml"
+# 28057 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27899,19 +28083,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27905 "parser_cocci_menhir.ml"
+# 28089 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2070 "parser_cocci_menhir.mly"
+# 2106 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
-# 27915 "parser_cocci_menhir.ml"
+# 28099 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27937,9 +28121,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2073 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                             ( _2 )
-# 27943 "parser_cocci_menhir.ml"
+# 28127 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27958,16 +28142,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27964 "parser_cocci_menhir.ml"
+# 28148 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2074 "parser_cocci_menhir.mly"
+# 2110 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
-# 27971 "parser_cocci_menhir.ml"
+# 28155 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27991,22 +28175,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27997 "parser_cocci_menhir.ml"
+# 28181 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28002 "parser_cocci_menhir.ml"
+# 28186 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2076 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
-# 28010 "parser_cocci_menhir.ml"
+# 28194 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28036,24 +28220,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = Obj.magic r in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28042 "parser_cocci_menhir.ml"
+# 28226 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28047 "parser_cocci_menhir.ml"
+# 28231 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2079 "parser_cocci_menhir.mly"
+# 2115 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (r build_dots build_comma) )
-# 28057 "parser_cocci_menhir.ml"
+# 28241 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28079,13 +28263,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_ceq = 
-# 1898 "parser_cocci_menhir.mly"
+# 1934 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
           then failwith "constraints not allowed in a generated rule file");
           [i] )
-# 28089 "parser_cocci_menhir.ml"
+# 28273 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28119,13 +28303,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_ceq = 
-# 1904 "parser_cocci_menhir.mly"
+# 1940 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
           then failwith "constraints not allowed in a generated rule file");
           l )
-# 28129 "parser_cocci_menhir.ml"
+# 28313 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28147,9 +28331,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ceq_ in
         let _endpos = _endpos_ceq_ in
         let _v : 'tv_not_ceq_or_sub = 
-# 1874 "parser_cocci_menhir.mly"
+# 1910 "parser_cocci_menhir.mly"
                   (Ast0.NotExpCstrt ceq)
-# 28153 "parser_cocci_menhir.ml"
+# 28337 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28171,9 +28355,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_not_ceq_or_sub = 
-# 1875 "parser_cocci_menhir.mly"
+# 1911 "parser_cocci_menhir.mly"
                   (Ast0.SubExpCstrt s)
-# 28177 "parser_cocci_menhir.ml"
+# 28361 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28199,14 +28383,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_eqe = 
-# 1879 "parser_cocci_menhir.mly"
+# 1915 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
           then failwith "constraints not allowed in a generated rule file");
           [Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))]
         )
-# 28210 "parser_cocci_menhir.ml"
+# 28394 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28240,7 +28424,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_eqe = 
-# 1886 "parser_cocci_menhir.mly"
+# 1922 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28250,7 +28434,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))))
             l
         )
-# 28254 "parser_cocci_menhir.ml"
+# 28438 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28276,7 +28460,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_eqid = 
-# 1836 "parser_cocci_menhir.mly"
+# 1872 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28290,7 +28474,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
                   (function mv -> Ast.MetaIdDecl(Ast.NONE,mv)) in
               Ast.IdNegIdSet([],[i])
           | (None,i) -> Ast.IdNegIdSet([i],[])) )
-# 28294 "parser_cocci_menhir.ml"
+# 28478 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28324,7 +28508,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_eqid = 
-# 1850 "parser_cocci_menhir.mly"
+# 1886 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28342,7 +28526,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               ([],[]) l in
           Ast.IdNegIdSet(str,meta)
         )
-# 28346 "parser_cocci_menhir.ml"
+# 28530 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28368,7 +28552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_pos = 
-# 1943 "parser_cocci_menhir.mly"
+# 1979 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28377,7 +28561,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             P.check_inherited_constraint i
               (function mv -> Ast.MetaPosDecl(Ast.NONE,mv)) in
           [i] )
-# 28381 "parser_cocci_menhir.ml"
+# 28565 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28411,7 +28595,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_pos = 
-# 1952 "parser_cocci_menhir.mly"
+# 1988 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28421,7 +28605,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               P.check_inherited_constraint i
                 (function mv -> Ast.MetaPosDecl(Ast.NONE,mv)))
             l )
-# 28425 "parser_cocci_menhir.ml"
+# 28609 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28443,9 +28627,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_dec_decl_ = 
-# 2040 "parser_cocci_menhir.mly"
+# 2076 "parser_cocci_menhir.mly"
         ( _1 )
-# 28449 "parser_cocci_menhir.ml"
+# 28633 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28464,14 +28648,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 134 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 28470 "parser_cocci_menhir.ml"
+# 28654 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_dec_decl_ = 
-# 2042 "parser_cocci_menhir.mly"
+# 2078 "parser_cocci_menhir.mly"
     ( let (nm,lenname,pure,clt) = _1 in
     let nm = P.clt2mcode nm clt in
       let lenname =
@@ -28480,7 +28664,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
        | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt)
        | Ast.CstLen n -> Ast0.CstListLen n in
     Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) )
-# 28484 "parser_cocci_menhir.ml"
+# 28668 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28502,9 +28686,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_dec_name_opt_decl_ = 
-# 2040 "parser_cocci_menhir.mly"
+# 2076 "parser_cocci_menhir.mly"
         ( _1 )
-# 28508 "parser_cocci_menhir.ml"
+# 28692 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28523,14 +28707,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 134 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 28529 "parser_cocci_menhir.ml"
+# 28713 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_dec_name_opt_decl_ = 
-# 2042 "parser_cocci_menhir.mly"
+# 2078 "parser_cocci_menhir.mly"
     ( let (nm,lenname,pure,clt) = _1 in
     let nm = P.clt2mcode nm clt in
       let lenname =
@@ -28539,7 +28723,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
        | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt)
        | Ast.CstLen n -> Ast0.CstListLen n in
     Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) )
-# 28543 "parser_cocci_menhir.ml"
+# 28727 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28563,17 +28747,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28569 "parser_cocci_menhir.ml"
+# 28753 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_one_decl_var = 
-# 1263 "parser_cocci_menhir.mly"
+# 1281 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) )
-# 28577 "parser_cocci_menhir.ml"
+# 28761 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28592,16 +28776,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 28598 "parser_cocci_menhir.ml"
+# 28782 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_decl_var = 
-# 1264 "parser_cocci_menhir.mly"
+# 1282 "parser_cocci_menhir.mly"
               ( P.meta_decl _1 )
-# 28605 "parser_cocci_menhir.ml"
+# 28789 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28630,9 +28814,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28636 "parser_cocci_menhir.ml"
+# 28820 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -28642,14 +28826,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 28646 "parser_cocci_menhir.ml"
+# 28830 "parser_cocci_menhir.ml"
           
         in
         
-# 1266 "parser_cocci_menhir.mly"
+# 1284 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 28653 "parser_cocci_menhir.ml"
+# 28837 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28683,9 +28867,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28689 "parser_cocci_menhir.ml"
+# 28873 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -28697,14 +28881,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 28701 "parser_cocci_menhir.ml"
+# 28885 "parser_cocci_menhir.ml"
           
         in
         
-# 1266 "parser_cocci_menhir.mly"
+# 1284 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 28708 "parser_cocci_menhir.ml"
+# 28892 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28726,9 +28910,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_f_ in
         let _v : 'tv_one_decl_var = 
-# 1268 "parser_cocci_menhir.mly"
+# 1286 "parser_cocci_menhir.mly"
                ( f )
-# 28732 "parser_cocci_menhir.ml"
+# 28916 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28767,15 +28951,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28773 "parser_cocci_menhir.ml"
+# 28957 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28779 "parser_cocci_menhir.ml"
+# 28963 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -28785,14 +28969,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 28789 "parser_cocci_menhir.ml"
+# 28973 "parser_cocci_menhir.ml"
           
         in
         
-# 1270 "parser_cocci_menhir.mly"
+# 1288 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
-# 28796 "parser_cocci_menhir.ml"
+# 28980 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28836,15 +29020,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28842 "parser_cocci_menhir.ml"
+# 29026 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28848 "parser_cocci_menhir.ml"
+# 29032 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
@@ -28856,14 +29040,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 28860 "parser_cocci_menhir.ml"
+# 29044 "parser_cocci_menhir.ml"
           
         in
         
-# 1270 "parser_cocci_menhir.mly"
+# 1288 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
-# 28867 "parser_cocci_menhir.ml"
+# 29051 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28892,9 +29076,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28898 "parser_cocci_menhir.ml"
+# 29082 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -28904,22 +29088,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 28908 "parser_cocci_menhir.ml"
+# 29092 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 28915 "parser_cocci_menhir.ml"
+# 29099 "parser_cocci_menhir.ml"
           
         in
         
-# 1275 "parser_cocci_menhir.mly"
+# 1293 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
        Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 28923 "parser_cocci_menhir.ml"
+# 29107 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28953,9 +29137,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28959 "parser_cocci_menhir.ml"
+# 29143 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -28967,22 +29151,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 28971 "parser_cocci_menhir.ml"
+# 29155 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 28978 "parser_cocci_menhir.ml"
+# 29162 "parser_cocci_menhir.ml"
           
         in
         
-# 1275 "parser_cocci_menhir.mly"
+# 1293 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
        Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 28986 "parser_cocci_menhir.ml"
+# 29170 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29016,9 +29200,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29022 "parser_cocci_menhir.ml"
+# 29206 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -29029,7 +29213,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 29033 "parser_cocci_menhir.ml"
+# 29217 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -29037,15 +29221,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29041 "parser_cocci_menhir.ml"
+# 29225 "parser_cocci_menhir.ml"
           
         in
         
-# 1275 "parser_cocci_menhir.mly"
+# 1293 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
        Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 29049 "parser_cocci_menhir.ml"
+# 29233 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29084,9 +29268,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29090 "parser_cocci_menhir.ml"
+# 29274 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -29099,7 +29283,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29103 "parser_cocci_menhir.ml"
+# 29287 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -29107,15 +29291,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29111 "parser_cocci_menhir.ml"
+# 29295 "parser_cocci_menhir.ml"
           
         in
         
-# 1275 "parser_cocci_menhir.mly"
+# 1293 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
        Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 29119 "parser_cocci_menhir.ml"
+# 29303 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29154,15 +29338,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29160 "parser_cocci_menhir.ml"
+# 29344 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29166 "parser_cocci_menhir.ml"
+# 29350 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -29172,24 +29356,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 29176 "parser_cocci_menhir.ml"
+# 29360 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 29183 "parser_cocci_menhir.ml"
+# 29367 "parser_cocci_menhir.ml"
           
         in
         
-# 1280 "parser_cocci_menhir.mly"
+# 1298 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv)) )
-# 29193 "parser_cocci_menhir.ml"
+# 29377 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29233,15 +29417,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29239 "parser_cocci_menhir.ml"
+# 29423 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29245 "parser_cocci_menhir.ml"
+# 29429 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -29253,24 +29437,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29257 "parser_cocci_menhir.ml"
+# 29441 "parser_cocci_menhir.ml"
           
         in
         let s =
           
 # 39 "standard.mly"
     ( None )
-# 29264 "parser_cocci_menhir.ml"
+# 29448 "parser_cocci_menhir.ml"
           
         in
         
-# 1280 "parser_cocci_menhir.mly"
+# 1298 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv)) )
-# 29274 "parser_cocci_menhir.ml"
+# 29458 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29314,15 +29498,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29320 "parser_cocci_menhir.ml"
+# 29504 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29326 "parser_cocci_menhir.ml"
+# 29510 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -29333,7 +29517,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 29337 "parser_cocci_menhir.ml"
+# 29521 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -29341,17 +29525,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29345 "parser_cocci_menhir.ml"
+# 29529 "parser_cocci_menhir.ml"
           
         in
         
-# 1280 "parser_cocci_menhir.mly"
+# 1298 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv)) )
-# 29355 "parser_cocci_menhir.ml"
+# 29539 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29400,15 +29584,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29406 "parser_cocci_menhir.ml"
+# 29590 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29412 "parser_cocci_menhir.ml"
+# 29596 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -29421,7 +29605,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29425 "parser_cocci_menhir.ml"
+# 29609 "parser_cocci_menhir.ml"
           
         in
         let s =
@@ -29429,17 +29613,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29433 "parser_cocci_menhir.ml"
+# 29617 "parser_cocci_menhir.ml"
           
         in
         
-# 1280 "parser_cocci_menhir.mly"
+# 1298 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
       Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
                           P.clt2mcode ";" pv)) )
-# 29443 "parser_cocci_menhir.ml"
+# 29627 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29498,36 +29682,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29504 "parser_cocci_menhir.ml"
+# 29688 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29509 "parser_cocci_menhir.ml"
+# 29693 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29515 "parser_cocci_menhir.ml"
+# 29699 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29520 "parser_cocci_menhir.ml"
+# 29704 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29526 "parser_cocci_menhir.ml"
+# 29710 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29531 "parser_cocci_menhir.ml"
+# 29715 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
@@ -29536,11 +29720,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 29540 "parser_cocci_menhir.ml"
+# 29724 "parser_cocci_menhir.ml"
           
         in
         
-# 1290 "parser_cocci_menhir.mly"
+# 1308 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -29548,7 +29732,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
         Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 29552 "parser_cocci_menhir.ml"
+# 29736 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29612,36 +29796,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29618 "parser_cocci_menhir.ml"
+# 29802 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29623 "parser_cocci_menhir.ml"
+# 29807 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29629 "parser_cocci_menhir.ml"
+# 29813 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29634 "parser_cocci_menhir.ml"
+# 29818 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29640 "parser_cocci_menhir.ml"
+# 29824 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29645 "parser_cocci_menhir.ml"
+# 29829 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let x0 : 'tv_storage = Obj.magic x0 in
@@ -29652,11 +29836,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29656 "parser_cocci_menhir.ml"
+# 29840 "parser_cocci_menhir.ml"
           
         in
         
-# 1290 "parser_cocci_menhir.mly"
+# 1308 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -29664,7 +29848,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
         Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 29668 "parser_cocci_menhir.ml"
+# 29852 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29703,29 +29887,109 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _5 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29709 "parser_cocci_menhir.ml"
+# 29893 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29714 "parser_cocci_menhir.ml"
+# 29898 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29720 "parser_cocci_menhir.ml"
+# 29904 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_decl_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_one_decl_var = 
-# 1298 "parser_cocci_menhir.mly"
+# 1316 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
                                  P.clt2mcode ")" _4,P.clt2mcode ";" _5)) )
-# 29729 "parser_cocci_menhir.ml"
+# 29913 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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.semv = _7;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _4;
+                MenhirLib.EngineTypes.startp = _startpos__4_;
+                MenhirLib.EngineTypes.endp = _endpos__4_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = _3;
+                  MenhirLib.EngineTypes.startp = _startpos__3_;
+                  MenhirLib.EngineTypes.endp = _endpos__3_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = _2;
+                    MenhirLib.EngineTypes.startp = _startpos__2_;
+                    MenhirLib.EngineTypes.endp = _endpos__2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = _1;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let _7 : (
+# 179 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29964 "parser_cocci_menhir.ml"
+        ) = Obj.magic _7 in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 179 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29970 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let _4 : (
+# 149 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29975 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 148 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29981 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_decl_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__7_ in
+        let _v : 'tv_one_decl_var = 
+# 1319 "parser_cocci_menhir.mly"
+      ( Ast0.wrap
+            (Ast0.MacroDeclInit
+               (_1,P.clt2mcode "(" _2,_3,
+                P.clt2mcode ")" _4,P.clt2mcode "=" q,e,
+                P.clt2mcode ";" _7)) )
+# 29993 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29794,42 +30058,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29800 "parser_cocci_menhir.ml"
+# 30064 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29806 "parser_cocci_menhir.ml"
+# 30070 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29811 "parser_cocci_menhir.ml"
+# 30075 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29817 "parser_cocci_menhir.ml"
+# 30081 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29822 "parser_cocci_menhir.ml"
+# 30086 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29828 "parser_cocci_menhir.ml"
+# 30092 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29833 "parser_cocci_menhir.ml"
+# 30097 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
@@ -29838,11 +30102,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 29842 "parser_cocci_menhir.ml"
+# 30106 "parser_cocci_menhir.ml"
           
         in
         
-# 1304 "parser_cocci_menhir.mly"
+# 1328 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -29850,7 +30114,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
       Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)))
-# 29854 "parser_cocci_menhir.ml"
+# 30118 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29924,42 +30188,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29930 "parser_cocci_menhir.ml"
+# 30194 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29936 "parser_cocci_menhir.ml"
+# 30200 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29941 "parser_cocci_menhir.ml"
+# 30205 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29947 "parser_cocci_menhir.ml"
+# 30211 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29952 "parser_cocci_menhir.ml"
+# 30216 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29958 "parser_cocci_menhir.ml"
+# 30222 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29963 "parser_cocci_menhir.ml"
+# 30227 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let x0 : 'tv_storage = Obj.magic x0 in
@@ -29970,11 +30234,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 29974 "parser_cocci_menhir.ml"
+# 30238 "parser_cocci_menhir.ml"
           
         in
         
-# 1304 "parser_cocci_menhir.mly"
+# 1328 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -29982,7 +30246,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
       Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)))
-# 29986 "parser_cocci_menhir.ml"
+# 30250 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29999,7 +30263,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_TLocal_ = 
 # 29 "standard.mly"
     ( None )
-# 30003 "parser_cocci_menhir.ml"
+# 30267 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30023,7 +30287,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_TLocal_ = 
 # 31 "standard.mly"
     ( Some x )
-# 30027 "parser_cocci_menhir.ml"
+# 30291 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30040,7 +30304,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_TPosAny_ = 
 # 29 "standard.mly"
     ( None )
-# 30044 "parser_cocci_menhir.ml"
+# 30308 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30064,7 +30328,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_TPosAny_ = 
 # 31 "standard.mly"
     ( Some x )
-# 30068 "parser_cocci_menhir.ml"
+# 30332 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30081,7 +30345,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_eexpr_ = 
 # 29 "standard.mly"
     ( None )
-# 30085 "parser_cocci_menhir.ml"
+# 30349 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30105,7 +30369,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_eexpr_ = 
 # 31 "standard.mly"
     ( Some x )
-# 30109 "parser_cocci_menhir.ml"
+# 30373 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30122,7 +30386,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_expr_ = 
 # 29 "standard.mly"
     ( None )
-# 30126 "parser_cocci_menhir.ml"
+# 30390 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30146,7 +30410,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_expr_ = 
 # 31 "standard.mly"
     ( Some x )
-# 30150 "parser_cocci_menhir.ml"
+# 30414 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30163,7 +30427,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_not_ceq_or_sub_ = 
 # 29 "standard.mly"
     ( None )
-# 30167 "parser_cocci_menhir.ml"
+# 30431 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30187,7 +30451,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_not_ceq_or_sub_ = 
 # 31 "standard.mly"
     ( Some x )
-# 30191 "parser_cocci_menhir.ml"
+# 30455 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30204,7 +30468,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_re_or_not_eqe_or_sub_ = 
 # 29 "standard.mly"
     ( None )
-# 30208 "parser_cocci_menhir.ml"
+# 30472 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30228,7 +30492,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_re_or_not_eqe_or_sub_ = 
 # 31 "standard.mly"
     ( Some x )
-# 30232 "parser_cocci_menhir.ml"
+# 30496 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30245,7 +30509,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_re_or_not_eqid_ = 
 # 29 "standard.mly"
     ( None )
-# 30249 "parser_cocci_menhir.ml"
+# 30513 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30269,7 +30533,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_option_re_or_not_eqid_ = 
 # 31 "standard.mly"
     ( Some x )
-# 30273 "parser_cocci_menhir.ml"
+# 30537 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30284,9 +30548,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_plus_after_dots = 
-# 2205 "parser_cocci_menhir.mly"
+# 2241 "parser_cocci_menhir.mly"
                                                                          ([])
-# 30290 "parser_cocci_menhir.ml"
+# 30554 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30312,9 +30576,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2206 "parser_cocci_menhir.mly"
+# 2242 "parser_cocci_menhir.mly"
                                                                          (_2)
-# 30318 "parser_cocci_menhir.ml"
+# 30582 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30342,9 +30606,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2208 "parser_cocci_menhir.mly"
+# 2244 "parser_cocci_menhir.mly"
                      ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
-# 30348 "parser_cocci_menhir.ml"
+# 30612 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30372,9 +30636,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2209 "parser_cocci_menhir.mly"
+# 2245 "parser_cocci_menhir.mly"
                                              ( Ast0.wrap(Ast0.OTHER(_1))::_2 )
-# 30378 "parser_cocci_menhir.ml"
+# 30642 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30402,9 +30666,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2211 "parser_cocci_menhir.mly"
+# 2247 "parser_cocci_menhir.mly"
                 ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
-# 30408 "parser_cocci_menhir.ml"
+# 30672 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30419,9 +30683,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_plus_after_exp = 
-# 2201 "parser_cocci_menhir.mly"
+# 2237 "parser_cocci_menhir.mly"
                                                                          ([])
-# 30425 "parser_cocci_menhir.ml"
+# 30689 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30449,9 +30713,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_exp = 
-# 2202 "parser_cocci_menhir.mly"
+# 2238 "parser_cocci_menhir.mly"
                                           ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
-# 30455 "parser_cocci_menhir.ml"
+# 30719 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30466,9 +30730,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_plus_after_stm = 
-# 2214 "parser_cocci_menhir.mly"
+# 2250 "parser_cocci_menhir.mly"
                                                                          ([])
-# 30472 "parser_cocci_menhir.ml"
+# 30736 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30496,9 +30760,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_stm = 
-# 2215 "parser_cocci_menhir.mly"
+# 2251 "parser_cocci_menhir.mly"
                                           ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
-# 30502 "parser_cocci_menhir.ml"
+# 30766 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30526,9 +30790,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_stm = 
-# 2216 "parser_cocci_menhir.mly"
+# 2252 "parser_cocci_menhir.mly"
                                              ( Ast0.wrap(Ast0.OTHER(_1))::_2 )
-# 30532 "parser_cocci_menhir.ml"
+# 30796 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30556,9 +30820,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_stm = 
-# 2218 "parser_cocci_menhir.mly"
+# 2254 "parser_cocci_menhir.mly"
                 ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
-# 30562 "parser_cocci_menhir.ml"
+# 30826 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30586,9 +30850,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_plus_body = 
-# 851 "parser_cocci_menhir.mly"
+# 854 "parser_cocci_menhir.mly"
     ( f@b(*@ew*) )
-# 30592 "parser_cocci_menhir.ml"
+# 30856 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30616,9 +30880,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_plus_exp_body = 
-# 865 "parser_cocci_menhir.mly"
+# 868 "parser_cocci_menhir.mly"
     ( f@[b](*@ew*) )
-# 30622 "parser_cocci_menhir.ml"
+# 30886 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30644,13 +30908,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 214 "parser_cocci_menhir.mly"
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30650 "parser_cocci_menhir.ml"
+# 30914 "parser_cocci_menhir.ml"
         ) = 
-# 250 "parser_cocci_menhir.mly"
+# 253 "parser_cocci_menhir.mly"
                                  ( _1 )
-# 30654 "parser_cocci_menhir.ml"
+# 30918 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30676,13 +30940,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 214 "parser_cocci_menhir.mly"
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30682 "parser_cocci_menhir.ml"
+# 30946 "parser_cocci_menhir.ml"
         ) = 
-# 250 "parser_cocci_menhir.mly"
+# 253 "parser_cocci_menhir.mly"
                                                                     ( p )
-# 30686 "parser_cocci_menhir.ml"
+# 30950 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30708,13 +30972,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 214 "parser_cocci_menhir.mly"
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30714 "parser_cocci_menhir.ml"
+# 30978 "parser_cocci_menhir.ml"
         ) = 
-# 251 "parser_cocci_menhir.mly"
+# 254 "parser_cocci_menhir.mly"
                         ( p )
-# 30718 "parser_cocci_menhir.ml"
+# 30982 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30740,13 +31004,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 211 "parser_cocci_menhir.mly"
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30746 "parser_cocci_menhir.ml"
+# 31010 "parser_cocci_menhir.ml"
         ) = 
-# 246 "parser_cocci_menhir.mly"
+# 249 "parser_cocci_menhir.mly"
                          ( _1 )
-# 30750 "parser_cocci_menhir.ml"
+# 31014 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30772,13 +31036,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 211 "parser_cocci_menhir.mly"
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30778 "parser_cocci_menhir.ml"
+# 31042 "parser_cocci_menhir.ml"
         ) = 
-# 246 "parser_cocci_menhir.mly"
+# 249 "parser_cocci_menhir.mly"
                                                         ( p )
-# 30782 "parser_cocci_menhir.ml"
+# 31046 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30804,13 +31068,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 211 "parser_cocci_menhir.mly"
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30810 "parser_cocci_menhir.ml"
+# 31074 "parser_cocci_menhir.ml"
         ) = 
-# 247 "parser_cocci_menhir.mly"
+# 250 "parser_cocci_menhir.mly"
                     ( p )
-# 30814 "parser_cocci_menhir.ml"
+# 31078 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30832,9 +31096,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_plus_start = 
-# 2190 "parser_cocci_menhir.mly"
+# 2226 "parser_cocci_menhir.mly"
                           ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
-# 30838 "parser_cocci_menhir.ml"
+# 31102 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30856,9 +31120,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_plus_start = 
-# 2191 "parser_cocci_menhir.mly"
+# 2227 "parser_cocci_menhir.mly"
                      ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
-# 30862 "parser_cocci_menhir.ml"
+# 31126 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30886,9 +31150,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2193 "parser_cocci_menhir.mly"
+# 2229 "parser_cocci_menhir.mly"
                                           ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
-# 30892 "parser_cocci_menhir.ml"
+# 31156 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30916,9 +31180,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2195 "parser_cocci_menhir.mly"
+# 2231 "parser_cocci_menhir.mly"
                      ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
-# 30922 "parser_cocci_menhir.ml"
+# 31186 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30946,9 +31210,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2196 "parser_cocci_menhir.mly"
+# 2232 "parser_cocci_menhir.mly"
                                              ( Ast0.wrap(Ast0.OTHER(_1))::_2 )
-# 30952 "parser_cocci_menhir.ml"
+# 31216 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -30976,9 +31240,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2198 "parser_cocci_menhir.mly"
+# 2234 "parser_cocci_menhir.mly"
                 ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
-# 30982 "parser_cocci_menhir.ml"
+# 31246 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31000,9 +31264,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1618 "parser_cocci_menhir.mly"
+# 1654 "parser_cocci_menhir.mly"
                                                  ( _1 )
-# 31006 "parser_cocci_menhir.ml"
+# 31270 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31036,24 +31300,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31042 "parser_cocci_menhir.ml"
+# 31306 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31048 "parser_cocci_menhir.ml"
+# 31312 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1620 "parser_cocci_menhir.mly"
+# 1656 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
-# 31057 "parser_cocci_menhir.ml"
+# 31321 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31083,17 +31347,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31089 "parser_cocci_menhir.ml"
+# 31353 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1623 "parser_cocci_menhir.mly"
+# 1659 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 31097 "parser_cocci_menhir.ml"
+# 31361 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31123,18 +31387,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 173 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31129 "parser_cocci_menhir.ml"
+# 31393 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1625 "parser_cocci_menhir.mly"
+# 1661 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
-# 31138 "parser_cocci_menhir.ml"
+# 31402 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31158,17 +31422,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31164 "parser_cocci_menhir.ml"
+# 31428 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1628 "parser_cocci_menhir.mly"
+# 1664 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 31172 "parser_cocci_menhir.ml"
+# 31436 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31192,17 +31456,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31198 "parser_cocci_menhir.ml"
+# 31462 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1630 "parser_cocci_menhir.mly"
+# 1666 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 31206 "parser_cocci_menhir.ml"
+# 31470 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31236,25 +31500,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31242 "parser_cocci_menhir.ml"
+# 31506 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31248 "parser_cocci_menhir.ml"
+# 31512 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1632 "parser_cocci_menhir.mly"
+# 1668 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
-# 31258 "parser_cocci_menhir.ml"
+# 31522 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31298,31 +31562,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31304 "parser_cocci_menhir.ml"
+# 31568 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31310 "parser_cocci_menhir.ml"
+# 31574 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31315 "parser_cocci_menhir.ml"
+# 31579 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31321 "parser_cocci_menhir.ml"
+# 31585 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1638 "parser_cocci_menhir.mly"
+# 1674 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -31334,7 +31598,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in
      Ast0.wrap
        (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) )
-# 31338 "parser_cocci_menhir.ml"
+# 31602 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31356,9 +31620,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1618 "parser_cocci_menhir.mly"
+# 1654 "parser_cocci_menhir.mly"
                                                  ( _1 )
-# 31362 "parser_cocci_menhir.ml"
+# 31626 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31392,24 +31656,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31398 "parser_cocci_menhir.ml"
+# 31662 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31404 "parser_cocci_menhir.ml"
+# 31668 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1620 "parser_cocci_menhir.mly"
+# 1656 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
-# 31413 "parser_cocci_menhir.ml"
+# 31677 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31439,17 +31703,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31445 "parser_cocci_menhir.ml"
+# 31709 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1623 "parser_cocci_menhir.mly"
+# 1659 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 31453 "parser_cocci_menhir.ml"
+# 31717 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31479,18 +31743,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 173 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31485 "parser_cocci_menhir.ml"
+# 31749 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1625 "parser_cocci_menhir.mly"
+# 1661 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
-# 31494 "parser_cocci_menhir.ml"
+# 31758 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31514,17 +31778,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31520 "parser_cocci_menhir.ml"
+# 31784 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1628 "parser_cocci_menhir.mly"
+# 1664 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 31528 "parser_cocci_menhir.ml"
+# 31792 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31548,17 +31812,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31554 "parser_cocci_menhir.ml"
+# 31818 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1630 "parser_cocci_menhir.mly"
+# 1666 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 31562 "parser_cocci_menhir.ml"
+# 31826 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31592,25 +31856,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31598 "parser_cocci_menhir.ml"
+# 31862 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31604 "parser_cocci_menhir.ml"
+# 31868 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1632 "parser_cocci_menhir.mly"
+# 1668 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
-# 31614 "parser_cocci_menhir.ml"
+# 31878 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31654,31 +31918,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31660 "parser_cocci_menhir.ml"
+# 31924 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31666 "parser_cocci_menhir.ml"
+# 31930 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31671 "parser_cocci_menhir.ml"
+# 31935 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31677 "parser_cocci_menhir.ml"
+# 31941 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1638 "parser_cocci_menhir.mly"
+# 1674 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -31690,7 +31954,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in
      Ast0.wrap
        (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) )
-# 31694 "parser_cocci_menhir.ml"
+# 31958 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31712,9 +31976,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1618 "parser_cocci_menhir.mly"
+# 1654 "parser_cocci_menhir.mly"
                                                  ( _1 )
-# 31718 "parser_cocci_menhir.ml"
+# 31982 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31748,24 +32012,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31754 "parser_cocci_menhir.ml"
+# 32018 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31760 "parser_cocci_menhir.ml"
+# 32024 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1620 "parser_cocci_menhir.mly"
+# 1656 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
-# 31769 "parser_cocci_menhir.ml"
+# 32033 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31795,17 +32059,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31801 "parser_cocci_menhir.ml"
+# 32065 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1623 "parser_cocci_menhir.mly"
+# 1659 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 31809 "parser_cocci_menhir.ml"
+# 32073 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31835,18 +32099,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 173 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31841 "parser_cocci_menhir.ml"
+# 32105 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1625 "parser_cocci_menhir.mly"
+# 1661 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
-# 31850 "parser_cocci_menhir.ml"
+# 32114 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31870,17 +32134,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31876 "parser_cocci_menhir.ml"
+# 32140 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1628 "parser_cocci_menhir.mly"
+# 1664 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 31884 "parser_cocci_menhir.ml"
+# 32148 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31904,17 +32168,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31910 "parser_cocci_menhir.ml"
+# 32174 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1630 "parser_cocci_menhir.mly"
+# 1666 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 31918 "parser_cocci_menhir.ml"
+# 32182 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -31948,25 +32212,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31954 "parser_cocci_menhir.ml"
+# 32218 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 31960 "parser_cocci_menhir.ml"
+# 32224 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1632 "parser_cocci_menhir.mly"
+# 1668 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
-# 31970 "parser_cocci_menhir.ml"
+# 32234 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32010,31 +32274,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32016 "parser_cocci_menhir.ml"
+# 32280 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32022 "parser_cocci_menhir.ml"
+# 32286 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32027 "parser_cocci_menhir.ml"
+# 32291 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32033 "parser_cocci_menhir.ml"
+# 32297 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1638 "parser_cocci_menhir.mly"
+# 1674 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -32046,7 +32310,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in
      Ast0.wrap
        (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) )
-# 32050 "parser_cocci_menhir.ml"
+# 32314 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32068,9 +32332,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1618 "parser_cocci_menhir.mly"
+# 1654 "parser_cocci_menhir.mly"
                                                  ( _1 )
-# 32074 "parser_cocci_menhir.ml"
+# 32338 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32104,24 +32368,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32110 "parser_cocci_menhir.ml"
+# 32374 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 171 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32116 "parser_cocci_menhir.ml"
+# 32380 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1620 "parser_cocci_menhir.mly"
+# 1656 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
-# 32125 "parser_cocci_menhir.ml"
+# 32389 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32151,17 +32415,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32157 "parser_cocci_menhir.ml"
+# 32421 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1623 "parser_cocci_menhir.mly"
+# 1659 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 32165 "parser_cocci_menhir.ml"
+# 32429 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32191,18 +32455,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 173 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32197 "parser_cocci_menhir.ml"
+# 32461 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1625 "parser_cocci_menhir.mly"
+# 1661 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
-# 32206 "parser_cocci_menhir.ml"
+# 32470 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32226,17 +32490,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32232 "parser_cocci_menhir.ml"
+# 32496 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1628 "parser_cocci_menhir.mly"
+# 1664 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 32240 "parser_cocci_menhir.ml"
+# 32504 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32260,17 +32524,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32266 "parser_cocci_menhir.ml"
+# 32530 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1630 "parser_cocci_menhir.mly"
+# 1666 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 32274 "parser_cocci_menhir.ml"
+# 32538 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32304,25 +32568,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32310 "parser_cocci_menhir.ml"
+# 32574 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32316 "parser_cocci_menhir.ml"
+# 32580 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1632 "parser_cocci_menhir.mly"
+# 1668 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
-# 32326 "parser_cocci_menhir.ml"
+# 32590 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32366,31 +32630,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32372 "parser_cocci_menhir.ml"
+# 32636 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32378 "parser_cocci_menhir.ml"
+# 32642 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32383 "parser_cocci_menhir.ml"
+# 32647 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32389 "parser_cocci_menhir.ml"
+# 32653 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1638 "parser_cocci_menhir.mly"
+# 1674 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -32402,7 +32666,135 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in
      Ast0.wrap
        (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) )
-# 32406 "parser_cocci_menhir.ml"
+# 32670 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pre_basic_expr_eexpr_dot_expressions_ = 
+# 1503 "parser_cocci_menhir.mly"
+                                                          ( _1 )
+# 32694 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            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 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _3 in
+        let _2 : (
+# 179 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 32726 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_pre_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_pre_basic_expr_eexpr_dot_expressions_ = 
+# 1506 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Sequence(_1,P.clt2mcode "," _2,_3)) )
+# 32734 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pre_basic_expr_eexpr_nest_expressions_ = 
+# 1503 "parser_cocci_menhir.mly"
+                                                          ( _1 )
+# 32758 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          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.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            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 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _3 in
+        let _2 : (
+# 179 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 32790 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_pre_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_pre_basic_expr_eexpr_nest_expressions_ = 
+# 1506 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Sequence(_1,P.clt2mcode "," _2,_3)) )
+# 32798 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32424,9 +32816,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1651 "parser_cocci_menhir.mly"
+# 1687 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
-# 32430 "parser_cocci_menhir.ml"
+# 32822 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32451,17 +32843,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32457 "parser_cocci_menhir.ml"
+# 32849 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1653 "parser_cocci_menhir.mly"
+# 1689 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
-# 32465 "parser_cocci_menhir.ml"
+# 32857 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32480,17 +32872,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 32486 "parser_cocci_menhir.ml"
+# 32878 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1692 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 32494 "parser_cocci_menhir.ml"
+# 32886 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32509,17 +32901,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 32515 "parser_cocci_menhir.ml"
+# 32907 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1695 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 32523 "parser_cocci_menhir.ml"
+# 32915 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32538,17 +32930,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 32544 "parser_cocci_menhir.ml"
+# 32936 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1662 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 32552 "parser_cocci_menhir.ml"
+# 32944 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32567,17 +32959,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 32573 "parser_cocci_menhir.ml"
+# 32965 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1665 "parser_cocci_menhir.mly"
+# 1701 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 32581 "parser_cocci_menhir.ml"
+# 32973 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32596,18 +32988,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 32602 "parser_cocci_menhir.ml"
+# 32994 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1668 "parser_cocci_menhir.mly"
+# 1704 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 32611 "parser_cocci_menhir.ml"
+# 33003 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32626,17 +33018,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 131 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
-# 32632 "parser_cocci_menhir.ml"
+# 33024 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1672 "parser_cocci_menhir.mly"
+# 1708 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 32640 "parser_cocci_menhir.ml"
+# 33032 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32655,18 +33047,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 32661 "parser_cocci_menhir.ml"
+# 33053 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1675 "parser_cocci_menhir.mly"
+# 1711 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 32670 "parser_cocci_menhir.ml"
+# 33062 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32685,18 +33077,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 32691 "parser_cocci_menhir.ml"
+# 33083 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1679 "parser_cocci_menhir.mly"
+# 1715 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 32700 "parser_cocci_menhir.ml"
+# 33092 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32715,18 +33107,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 32721 "parser_cocci_menhir.ml"
+# 33113 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1683 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 32730 "parser_cocci_menhir.ml"
+# 33122 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32755,23 +33147,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32761 "parser_cocci_menhir.ml"
+# 33153 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32767 "parser_cocci_menhir.ml"
+# 33159 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1687 "parser_cocci_menhir.mly"
+# 1723 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
-# 32775 "parser_cocci_menhir.ml"
+# 33167 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32800,25 +33192,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32806 "parser_cocci_menhir.ml"
+# 33198 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32812 "parser_cocci_menhir.ml"
+# 33204 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1690 "parser_cocci_menhir.mly"
+# 1726 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
                               P.clt2mcode ")" _3)) )
-# 32822 "parser_cocci_menhir.ml"
+# 33214 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32840,9 +33232,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1694 "parser_cocci_menhir.mly"
+# 1730 "parser_cocci_menhir.mly"
                  ( _1 )
-# 32846 "parser_cocci_menhir.ml"
+# 33238 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32864,9 +33256,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1651 "parser_cocci_menhir.mly"
+# 1687 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
-# 32870 "parser_cocci_menhir.ml"
+# 33262 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32891,17 +33283,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 32897 "parser_cocci_menhir.ml"
+# 33289 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1653 "parser_cocci_menhir.mly"
+# 1689 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
-# 32905 "parser_cocci_menhir.ml"
+# 33297 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32920,17 +33312,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 32926 "parser_cocci_menhir.ml"
+# 33318 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1692 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 32934 "parser_cocci_menhir.ml"
+# 33326 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32949,17 +33341,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 32955 "parser_cocci_menhir.ml"
+# 33347 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1695 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 32963 "parser_cocci_menhir.ml"
+# 33355 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -32978,17 +33370,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 32984 "parser_cocci_menhir.ml"
+# 33376 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1662 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 32992 "parser_cocci_menhir.ml"
+# 33384 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33007,17 +33399,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33013 "parser_cocci_menhir.ml"
+# 33405 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1665 "parser_cocci_menhir.mly"
+# 1701 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 33021 "parser_cocci_menhir.ml"
+# 33413 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33036,18 +33428,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33042 "parser_cocci_menhir.ml"
+# 33434 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1668 "parser_cocci_menhir.mly"
+# 1704 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 33051 "parser_cocci_menhir.ml"
+# 33443 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33066,17 +33458,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 131 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
-# 33072 "parser_cocci_menhir.ml"
+# 33464 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1672 "parser_cocci_menhir.mly"
+# 1708 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 33080 "parser_cocci_menhir.ml"
+# 33472 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33095,18 +33487,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33101 "parser_cocci_menhir.ml"
+# 33493 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1675 "parser_cocci_menhir.mly"
+# 1711 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 33110 "parser_cocci_menhir.ml"
+# 33502 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33125,18 +33517,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33131 "parser_cocci_menhir.ml"
+# 33523 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1679 "parser_cocci_menhir.mly"
+# 1715 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 33140 "parser_cocci_menhir.ml"
+# 33532 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33155,18 +33547,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33161 "parser_cocci_menhir.ml"
+# 33553 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1683 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 33170 "parser_cocci_menhir.ml"
+# 33562 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33195,23 +33587,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33201 "parser_cocci_menhir.ml"
+# 33593 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33207 "parser_cocci_menhir.ml"
+# 33599 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1687 "parser_cocci_menhir.mly"
+# 1723 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
-# 33215 "parser_cocci_menhir.ml"
+# 33607 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33240,25 +33632,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33246 "parser_cocci_menhir.ml"
+# 33638 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33252 "parser_cocci_menhir.ml"
+# 33644 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1690 "parser_cocci_menhir.mly"
+# 1726 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
                               P.clt2mcode ")" _3)) )
-# 33262 "parser_cocci_menhir.ml"
+# 33654 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33280,9 +33672,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1694 "parser_cocci_menhir.mly"
+# 1730 "parser_cocci_menhir.mly"
                  ( _1 )
-# 33286 "parser_cocci_menhir.ml"
+# 33678 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33304,9 +33696,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1651 "parser_cocci_menhir.mly"
+# 1687 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
-# 33310 "parser_cocci_menhir.ml"
+# 33702 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33331,17 +33723,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33337 "parser_cocci_menhir.ml"
+# 33729 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1653 "parser_cocci_menhir.mly"
+# 1689 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
-# 33345 "parser_cocci_menhir.ml"
+# 33737 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33360,17 +33752,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33366 "parser_cocci_menhir.ml"
+# 33758 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1692 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 33374 "parser_cocci_menhir.ml"
+# 33766 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33389,17 +33781,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33395 "parser_cocci_menhir.ml"
+# 33787 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1695 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 33403 "parser_cocci_menhir.ml"
+# 33795 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33418,17 +33810,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33424 "parser_cocci_menhir.ml"
+# 33816 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1662 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 33432 "parser_cocci_menhir.ml"
+# 33824 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33447,17 +33839,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33453 "parser_cocci_menhir.ml"
+# 33845 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1665 "parser_cocci_menhir.mly"
+# 1701 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 33461 "parser_cocci_menhir.ml"
+# 33853 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33476,18 +33868,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33482 "parser_cocci_menhir.ml"
+# 33874 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1668 "parser_cocci_menhir.mly"
+# 1704 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 33491 "parser_cocci_menhir.ml"
+# 33883 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33506,17 +33898,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 131 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
-# 33512 "parser_cocci_menhir.ml"
+# 33904 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1672 "parser_cocci_menhir.mly"
+# 1708 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 33520 "parser_cocci_menhir.ml"
+# 33912 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33535,18 +33927,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33541 "parser_cocci_menhir.ml"
+# 33933 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1675 "parser_cocci_menhir.mly"
+# 1711 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 33550 "parser_cocci_menhir.ml"
+# 33942 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33565,18 +33957,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33571 "parser_cocci_menhir.ml"
+# 33963 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1679 "parser_cocci_menhir.mly"
+# 1715 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 33580 "parser_cocci_menhir.ml"
+# 33972 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33595,18 +33987,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33601 "parser_cocci_menhir.ml"
+# 33993 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1683 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 33610 "parser_cocci_menhir.ml"
+# 34002 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33635,23 +34027,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33641 "parser_cocci_menhir.ml"
+# 34033 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33647 "parser_cocci_menhir.ml"
+# 34039 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1687 "parser_cocci_menhir.mly"
+# 1723 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
-# 33655 "parser_cocci_menhir.ml"
+# 34047 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33680,25 +34072,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33686 "parser_cocci_menhir.ml"
+# 34078 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33692 "parser_cocci_menhir.ml"
+# 34084 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1690 "parser_cocci_menhir.mly"
+# 1726 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
                               P.clt2mcode ")" _3)) )
-# 33702 "parser_cocci_menhir.ml"
+# 34094 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33720,9 +34112,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1694 "parser_cocci_menhir.mly"
+# 1730 "parser_cocci_menhir.mly"
                  ( _1 )
-# 33726 "parser_cocci_menhir.ml"
+# 34118 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33744,9 +34136,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1651 "parser_cocci_menhir.mly"
+# 1687 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
-# 33750 "parser_cocci_menhir.ml"
+# 34142 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33771,17 +34163,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
-# 33777 "parser_cocci_menhir.ml"
+# 34169 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1653 "parser_cocci_menhir.mly"
+# 1689 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
-# 33785 "parser_cocci_menhir.ml"
+# 34177 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33800,17 +34192,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33806 "parser_cocci_menhir.ml"
+# 34198 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1692 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 33814 "parser_cocci_menhir.ml"
+# 34206 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33829,17 +34221,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33835 "parser_cocci_menhir.ml"
+# 34227 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1695 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 33843 "parser_cocci_menhir.ml"
+# 34235 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33858,17 +34250,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33864 "parser_cocci_menhir.ml"
+# 34256 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1662 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 33872 "parser_cocci_menhir.ml"
+# 34264 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33887,17 +34279,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 33893 "parser_cocci_menhir.ml"
+# 34285 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1665 "parser_cocci_menhir.mly"
+# 1701 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 33901 "parser_cocci_menhir.ml"
+# 34293 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33916,18 +34308,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33922 "parser_cocci_menhir.ml"
+# 34314 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1668 "parser_cocci_menhir.mly"
+# 1704 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 33931 "parser_cocci_menhir.ml"
+# 34323 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33946,17 +34338,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 131 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
-# 33952 "parser_cocci_menhir.ml"
+# 34344 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1672 "parser_cocci_menhir.mly"
+# 1708 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 33960 "parser_cocci_menhir.ml"
+# 34352 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -33975,18 +34367,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 33981 "parser_cocci_menhir.ml"
+# 34373 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1675 "parser_cocci_menhir.mly"
+# 1711 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 33990 "parser_cocci_menhir.ml"
+# 34382 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34005,18 +34397,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 34011 "parser_cocci_menhir.ml"
+# 34403 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1679 "parser_cocci_menhir.mly"
+# 1715 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 34020 "parser_cocci_menhir.ml"
+# 34412 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34035,18 +34427,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 136 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
-# 34041 "parser_cocci_menhir.ml"
+# 34433 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1683 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,ty,clt) = _1 in
      Ast0.wrap
        (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 34050 "parser_cocci_menhir.ml"
+# 34442 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34075,23 +34467,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 34081 "parser_cocci_menhir.ml"
+# 34473 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 34087 "parser_cocci_menhir.ml"
+# 34479 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1687 "parser_cocci_menhir.mly"
+# 1723 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
-# 34095 "parser_cocci_menhir.ml"
+# 34487 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34120,25 +34512,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 34126 "parser_cocci_menhir.ml"
+# 34518 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 34132 "parser_cocci_menhir.ml"
+# 34524 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1690 "parser_cocci_menhir.mly"
+# 1726 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
                               P.clt2mcode ")" _3)) )
-# 34142 "parser_cocci_menhir.ml"
+# 34534 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34160,9 +34552,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1694 "parser_cocci_menhir.mly"
+# 1730 "parser_cocci_menhir.mly"
                  ( _1 )
-# 34166 "parser_cocci_menhir.ml"
+# 34558 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34182,9 +34574,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure = 
-# 261 "parser_cocci_menhir.mly"
+# 264 "parser_cocci_menhir.mly"
                  ( Ast0.Pure )
-# 34188 "parser_cocci_menhir.ml"
+# 34580 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34204,9 +34596,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure = 
-# 262 "parser_cocci_menhir.mly"
+# 265 "parser_cocci_menhir.mly"
                  ( Ast0.Context )
-# 34210 "parser_cocci_menhir.ml"
+# 34602 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34230,9 +34622,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_pure = 
-# 263 "parser_cocci_menhir.mly"
+# 266 "parser_cocci_menhir.mly"
                  ( Ast0.PureContext )
-# 34236 "parser_cocci_menhir.ml"
+# 34628 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34256,9 +34648,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_pure = 
-# 264 "parser_cocci_menhir.mly"
+# 267 "parser_cocci_menhir.mly"
                  ( Ast0.PureContext )
-# 34262 "parser_cocci_menhir.ml"
+# 34654 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34273,9 +34665,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_pure = 
-# 265 "parser_cocci_menhir.mly"
+# 268 "parser_cocci_menhir.mly"
                  ( Ast0.Impure )
-# 34279 "parser_cocci_menhir.ml"
+# 34671 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34294,16 +34686,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 34300 "parser_cocci_menhir.ml"
+# 34692 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident = 
-# 1708 "parser_cocci_menhir.mly"
+# 1744 "parser_cocci_menhir.mly"
             ( _1 )
-# 34307 "parser_cocci_menhir.ml"
+# 34699 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34323,9 +34715,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1715 "parser_cocci_menhir.mly"
+# 1751 "parser_cocci_menhir.mly"
                  ( "identifier" )
-# 34329 "parser_cocci_menhir.ml"
+# 34721 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34345,9 +34737,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1716 "parser_cocci_menhir.mly"
+# 1752 "parser_cocci_menhir.mly"
                  ( "expression" )
-# 34351 "parser_cocci_menhir.ml"
+# 34743 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34367,9 +34759,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1717 "parser_cocci_menhir.mly"
+# 1753 "parser_cocci_menhir.mly"
                 ( "statement" )
-# 34373 "parser_cocci_menhir.ml"
+# 34765 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34389,9 +34781,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1718 "parser_cocci_menhir.mly"
+# 1754 "parser_cocci_menhir.mly"
                ( "function" )
-# 34395 "parser_cocci_menhir.ml"
+# 34787 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34411,9 +34803,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1719 "parser_cocci_menhir.mly"
+# 1755 "parser_cocci_menhir.mly"
             ( "local" )
-# 34417 "parser_cocci_menhir.ml"
+# 34809 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34433,9 +34825,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1720 "parser_cocci_menhir.mly"
+# 1756 "parser_cocci_menhir.mly"
            ( "type" )
-# 34439 "parser_cocci_menhir.ml"
+# 34831 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34455,9 +34847,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1721 "parser_cocci_menhir.mly"
+# 1757 "parser_cocci_menhir.mly"
                 ( "parameter" )
-# 34461 "parser_cocci_menhir.ml"
+# 34853 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34477,9 +34869,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1722 "parser_cocci_menhir.mly"
+# 1758 "parser_cocci_menhir.mly"
                    ( "idexpression" )
-# 34483 "parser_cocci_menhir.ml"
+# 34875 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34499,9 +34891,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1723 "parser_cocci_menhir.mly"
+# 1759 "parser_cocci_menhir.mly"
                   ( "initialiser" )
-# 34505 "parser_cocci_menhir.ml"
+# 34897 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34521,9 +34913,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1724 "parser_cocci_menhir.mly"
+# 1760 "parser_cocci_menhir.mly"
            ( "list" )
-# 34527 "parser_cocci_menhir.ml"
+# 34919 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34543,9 +34935,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1725 "parser_cocci_menhir.mly"
+# 1761 "parser_cocci_menhir.mly"
             ( "fresh" )
-# 34549 "parser_cocci_menhir.ml"
+# 34941 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34565,9 +34957,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1726 "parser_cocci_menhir.mly"
+# 1762 "parser_cocci_menhir.mly"
                ( "constant" )
-# 34571 "parser_cocci_menhir.ml"
+# 34963 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34587,9 +34979,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1727 "parser_cocci_menhir.mly"
+# 1763 "parser_cocci_menhir.mly"
             ( "error" )
-# 34593 "parser_cocci_menhir.ml"
+# 34985 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34609,9 +35001,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1728 "parser_cocci_menhir.mly"
+# 1764 "parser_cocci_menhir.mly"
             ( "words" )
-# 34615 "parser_cocci_menhir.ml"
+# 35007 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34631,9 +35023,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1729 "parser_cocci_menhir.mly"
+# 1765 "parser_cocci_menhir.mly"
            ( "pure" )
-# 34637 "parser_cocci_menhir.ml"
+# 35029 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34653,9 +35045,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1730 "parser_cocci_menhir.mly"
+# 1766 "parser_cocci_menhir.mly"
               ( "context" )
-# 34659 "parser_cocci_menhir.ml"
+# 35051 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34675,9 +35067,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1731 "parser_cocci_menhir.mly"
+# 1767 "parser_cocci_menhir.mly"
                 ( "generated" )
-# 34681 "parser_cocci_menhir.ml"
+# 35073 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34697,9 +35089,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1732 "parser_cocci_menhir.mly"
+# 1768 "parser_cocci_menhir.mly"
               ( "typedef" )
-# 34703 "parser_cocci_menhir.ml"
+# 35095 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34719,9 +35111,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1733 "parser_cocci_menhir.mly"
+# 1769 "parser_cocci_menhir.mly"
                ( "declarer" )
-# 34725 "parser_cocci_menhir.ml"
+# 35117 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34741,9 +35133,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1734 "parser_cocci_menhir.mly"
+# 1770 "parser_cocci_menhir.mly"
                ( "iterator" )
-# 34747 "parser_cocci_menhir.ml"
+# 35139 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34763,9 +35155,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1735 "parser_cocci_menhir.mly"
+# 1771 "parser_cocci_menhir.mly"
            ( "name" )
-# 34769 "parser_cocci_menhir.ml"
+# 35161 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34785,9 +35177,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1736 "parser_cocci_menhir.mly"
+# 1772 "parser_cocci_menhir.mly"
                ( "position" )
-# 34791 "parser_cocci_menhir.ml"
+# 35183 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34807,9 +35199,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1737 "parser_cocci_menhir.mly"
+# 1773 "parser_cocci_menhir.mly"
              ( "symbol" )
-# 34813 "parser_cocci_menhir.ml"
+# 35205 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34831,9 +35223,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_meta_ident = 
-# 1744 "parser_cocci_menhir.mly"
+# 1780 "parser_cocci_menhir.mly"
                                  ( (None,P.id2name _1) )
-# 34837 "parser_cocci_menhir.ml"
+# 35229 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34855,9 +35247,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_meta_ident = 
-# 1745 "parser_cocci_menhir.mly"
+# 1781 "parser_cocci_menhir.mly"
                                  ( (None,_1) )
-# 34861 "parser_cocci_menhir.ml"
+# 35253 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34879,9 +35271,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_meta_ident = 
-# 1746 "parser_cocci_menhir.mly"
+# 1782 "parser_cocci_menhir.mly"
                                  ( _1 )
-# 34885 "parser_cocci_menhir.ml"
+# 35277 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34909,13 +35301,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_i_ in
         let _endpos = _endpos_optc_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = 
-# 1783 "parser_cocci_menhir.mly"
+# 1819 "parser_cocci_menhir.mly"
     (
       match optc with
          None   -> (i, Ast0.NoConstraint)
        | Some c -> (i, c)
     )
-# 34919 "parser_cocci_menhir.ml"
+# 35311 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34943,13 +35335,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_i_ in
         let _endpos = _endpos_optc_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = 
-# 1783 "parser_cocci_menhir.mly"
+# 1819 "parser_cocci_menhir.mly"
     (
       match optc with
          None   -> (i, Ast0.NoConstraint)
        | Some c -> (i, c)
     )
-# 34953 "parser_cocci_menhir.ml"
+# 35345 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -34977,13 +35369,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_i_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = 
-# 1808 "parser_cocci_menhir.mly"
+# 1844 "parser_cocci_menhir.mly"
     (
       match c with
          None -> (i, Ast.IdNoConstraint)
        | Some constraint_ -> (i,constraint_)
     )
-# 34987 "parser_cocci_menhir.ml"
+# 35379 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35011,14 +35403,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_i_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = 
-# 1791 "parser_cocci_menhir.mly"
+# 1827 "parser_cocci_menhir.mly"
     (
       Common.Left
         (match c with
          None -> (i, Ast.IdNoConstraint)
        | Some constraint_ -> (i,constraint_))
     )
-# 35022 "parser_cocci_menhir.ml"
+# 35414 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35048,7 +35440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = 
-# 1798 "parser_cocci_menhir.mly"
+# 1834 "parser_cocci_menhir.mly"
     (
      let nm = P.id2name _3 in
      Iteration.parsed_virtual_identifiers :=
@@ -35056,7 +35448,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         !Iteration.parsed_virtual_identifiers;
      Common.Right nm
     )
-# 35060 "parser_cocci_menhir.ml"
+# 35452 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35078,9 +35470,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_seed = 
-# 1752 "parser_cocci_menhir.mly"
+# 1788 "parser_cocci_menhir.mly"
                                 ( (_1,Ast.NoVal) )
-# 35084 "parser_cocci_menhir.ml"
+# 35476 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35112,11 +35504,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_seed = 
-# 1755 "parser_cocci_menhir.mly"
+# 1791 "parser_cocci_menhir.mly"
   ( match _3 with
           [Ast.SeedString s] -> (_1,Ast.StringSeed s)
         | _ -> (_1,Ast.ListSeed _3) )
-# 35120 "parser_cocci_menhir.ml"
+# 35512 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35144,11 +35536,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_i_ in
         let _endpos = _endpos_l_ in
         let _v : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = 
-# 1777 "parser_cocci_menhir.mly"
+# 1813 "parser_cocci_menhir.mly"
     (
       (i, l)
     )
-# 35152 "parser_cocci_menhir.ml"
+# 35544 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35170,9 +35562,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_symbol = 
-# 1711 "parser_cocci_menhir.mly"
+# 1747 "parser_cocci_menhir.mly"
                ( _1 )
-# 35176 "parser_cocci_menhir.ml"
+# 35568 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35191,16 +35583,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 35197 "parser_cocci_menhir.ml"
+# 35589 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_symbol = 
-# 1712 "parser_cocci_menhir.mly"
+# 1748 "parser_cocci_menhir.mly"
            ( _1 )
-# 35204 "parser_cocci_menhir.ml"
+# 35596 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35222,9 +35614,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_re_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_re_or_not_eqe_or_sub = 
-# 1869 "parser_cocci_menhir.mly"
+# 1905 "parser_cocci_menhir.mly"
                   (Ast0.NotIdCstrt  re)
-# 35228 "parser_cocci_menhir.ml"
+# 35620 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35246,9 +35638,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ne_ in
         let _endpos = _endpos_ne_ in
         let _v : 'tv_re_or_not_eqe_or_sub = 
-# 1870 "parser_cocci_menhir.mly"
+# 1906 "parser_cocci_menhir.mly"
                   (Ast0.NotExpCstrt ne)
-# 35252 "parser_cocci_menhir.ml"
+# 35644 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35270,9 +35662,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_re_or_not_eqe_or_sub = 
-# 1871 "parser_cocci_menhir.mly"
+# 1907 "parser_cocci_menhir.mly"
                   (Ast0.SubExpCstrt s)
-# 35276 "parser_cocci_menhir.ml"
+# 35668 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35294,9 +35686,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_re_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_re_or_not_eqid = 
-# 1815 "parser_cocci_menhir.mly"
+# 1851 "parser_cocci_menhir.mly"
                   (Ast.IdRegExpConstraint re)
-# 35300 "parser_cocci_menhir.ml"
+# 35692 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35318,9 +35710,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ne_ in
         let _endpos = _endpos_ne_ in
         let _v : 'tv_re_or_not_eqid = 
-# 1816 "parser_cocci_menhir.mly"
+# 1852 "parser_cocci_menhir.mly"
                   (ne)
-# 35324 "parser_cocci_menhir.ml"
+# 35716 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35343,21 +35735,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let re : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 35349 "parser_cocci_menhir.ml"
+# 35741 "parser_cocci_menhir.ml"
         ) = Obj.magic re in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_regexp_eqid = 
-# 1820 "parser_cocci_menhir.mly"
+# 1856 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
            then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
            then failwith "constraints not allowed in a generated rule file");
           let (s,_) = re in Ast.IdRegExp (s,Regexp.regexp s)
         )
-# 35361 "parser_cocci_menhir.ml"
+# 35753 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35380,21 +35772,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let re : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 35386 "parser_cocci_menhir.ml"
+# 35778 "parser_cocci_menhir.ml"
         ) = Obj.magic re in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_regexp_eqid = 
-# 1827 "parser_cocci_menhir.mly"
+# 1863 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
            then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
            then failwith "constraints not allowed in a generated rule file");
           let (s,_) = re in Ast.IdNotRegExp (s,Regexp.regexp s)
         )
-# 35398 "parser_cocci_menhir.ml"
+# 35790 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35409,13 +35801,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : (
-# 202 "parser_cocci_menhir.mly"
+# 205 "parser_cocci_menhir.mly"
       (unit)
-# 35415 "parser_cocci_menhir.ml"
+# 35807 "parser_cocci_menhir.ml"
         ) = 
-# 243 "parser_cocci_menhir.mly"
+# 246 "parser_cocci_menhir.mly"
         ( )
-# 35419 "parser_cocci_menhir.ml"
+# 35811 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35437,9 +35829,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_rule_elem_statement = 
-# 1159 "parser_cocci_menhir.mly"
+# 1162 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) )
-# 35443 "parser_cocci_menhir.ml"
+# 35835 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35463,17 +35855,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35469 "parser_cocci_menhir.ml"
+# 35861 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_option_expr_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1160 "parser_cocci_menhir.mly"
+# 1163 "parser_cocci_menhir.mly"
                        ( P.exp_stm _1 _2 )
-# 35477 "parser_cocci_menhir.ml"
+# 35869 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35502,22 +35894,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35508 "parser_cocci_menhir.ml"
+# 35900 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35514 "parser_cocci_menhir.ml"
+# 35906 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_rule_elem_statement = 
-# 1161 "parser_cocci_menhir.mly"
+# 1164 "parser_cocci_menhir.mly"
                         ( P.ret_exp _1 _2 _3 )
-# 35521 "parser_cocci_menhir.ml"
+# 35913 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35541,21 +35933,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35547 "parser_cocci_menhir.ml"
+# 35939 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35552 "parser_cocci_menhir.ml"
+# 35944 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1162 "parser_cocci_menhir.mly"
+# 1165 "parser_cocci_menhir.mly"
                   ( P.ret _1 _2 )
-# 35559 "parser_cocci_menhir.ml"
+# 35951 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35579,21 +35971,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35585 "parser_cocci_menhir.ml"
+# 35977 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35590 "parser_cocci_menhir.ml"
+# 35982 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1163 "parser_cocci_menhir.mly"
+# 1166 "parser_cocci_menhir.mly"
                  ( P.break _1 _2 )
-# 35597 "parser_cocci_menhir.ml"
+# 35989 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35617,21 +36009,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35623 "parser_cocci_menhir.ml"
+# 36015 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35628 "parser_cocci_menhir.ml"
+# 36020 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1164 "parser_cocci_menhir.mly"
+# 1167 "parser_cocci_menhir.mly"
                     ( P.cont _1 _2 )
-# 35635 "parser_cocci_menhir.ml"
+# 36027 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35660,26 +36052,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35666 "parser_cocci_menhir.ml"
+# 36058 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 35672 "parser_cocci_menhir.ml"
+# 36064 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_rule_elem_statement = 
-# 1166 "parser_cocci_menhir.mly"
+# 1169 "parser_cocci_menhir.mly"
     ( let (mids,code) = _2 in
     Ast0.wrap
       (Ast0.Disj(P.clt2mcode "(" _1,
                 List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code,
                 mids, P.clt2mcode ")" _3)) )
-# 35683 "parser_cocci_menhir.ml"
+# 36075 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35733,20 +36125,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 224 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 35739 "parser_cocci_menhir.ml"
+# 36131 "parser_cocci_menhir.ml"
         ) = let nm =
           
 # 39 "standard.mly"
     ( None )
-# 35744 "parser_cocci_menhir.ml"
+# 36136 "parser_cocci_menhir.ml"
           
         in
         
-# 273 "parser_cocci_menhir.mly"
+# 276 "parser_cocci_menhir.mly"
       ( P.make_cocci_rule_name_result nm d i a e ee )
-# 35750 "parser_cocci_menhir.ml"
+# 36142 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35806,21 +36198,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_x0_ in
         let _endpos = _endpos__8_ in
         let _v : (
-# 224 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 35812 "parser_cocci_menhir.ml"
+# 36204 "parser_cocci_menhir.ml"
         ) = let nm =
           let x = x0 in
           
 # 41 "standard.mly"
     ( Some x )
-# 35818 "parser_cocci_menhir.ml"
+# 36210 "parser_cocci_menhir.ml"
           
         in
         
-# 273 "parser_cocci_menhir.mly"
+# 276 "parser_cocci_menhir.mly"
       ( P.make_cocci_rule_name_result nm d i a e ee )
-# 35824 "parser_cocci_menhir.ml"
+# 36216 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35878,13 +36270,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__8_ in
         let _v : (
-# 224 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 35884 "parser_cocci_menhir.ml"
+# 36276 "parser_cocci_menhir.ml"
         ) = 
-# 278 "parser_cocci_menhir.mly"
+# 281 "parser_cocci_menhir.mly"
       ( P.make_generated_rule_name_result None d i a e ee )
-# 35888 "parser_cocci_menhir.ml"
+# 36280 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35924,20 +36316,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : (
-# 224 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 35930 "parser_cocci_menhir.ml"
+# 36322 "parser_cocci_menhir.ml"
         ) = let nm =
           
 # 39 "standard.mly"
     ( None )
-# 35935 "parser_cocci_menhir.ml"
+# 36327 "parser_cocci_menhir.ml"
           
         in
         
-# 280 "parser_cocci_menhir.mly"
+# 283 "parser_cocci_menhir.mly"
       ( P.make_script_rule_name_result lang nm d )
-# 35941 "parser_cocci_menhir.ml"
+# 36333 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -35983,21 +36375,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : (
-# 224 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 35989 "parser_cocci_menhir.ml"
+# 36381 "parser_cocci_menhir.ml"
         ) = let nm =
           let x = x0 in
           
 # 41 "standard.mly"
     ( Some x )
-# 35995 "parser_cocci_menhir.ml"
+# 36387 "parser_cocci_menhir.ml"
           
         in
         
-# 280 "parser_cocci_menhir.mly"
+# 283 "parser_cocci_menhir.mly"
       ( P.make_script_rule_name_result lang nm d )
-# 36001 "parser_cocci_menhir.ml"
+# 36393 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36037,13 +36429,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : (
-# 224 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 36043 "parser_cocci_menhir.ml"
+# 36435 "parser_cocci_menhir.ml"
         ) = 
-# 282 "parser_cocci_menhir.mly"
+# 285 "parser_cocci_menhir.mly"
       ( P.make_initial_script_rule_name_result lang d )
-# 36047 "parser_cocci_menhir.ml"
+# 36439 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36083,13 +36475,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : (
-# 224 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 36089 "parser_cocci_menhir.ml"
+# 36481 "parser_cocci_menhir.ml"
         ) = 
-# 284 "parser_cocci_menhir.mly"
+# 287 "parser_cocci_menhir.mly"
       ( P.make_final_script_rule_name_result lang d )
-# 36093 "parser_cocci_menhir.ml"
+# 36485 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36115,13 +36507,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_py_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 230 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
-# 36121 "parser_cocci_menhir.ml"
+# 36513 "parser_cocci_menhir.ml"
         ) = 
-# 2389 "parser_cocci_menhir.mly"
+# 2425 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name py), None), None) )
-# 36125 "parser_cocci_menhir.ml"
+# 36517 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36153,13 +36545,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_py_ in
         let _endpos = _endpos__3_ in
         let _v : (
-# 230 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
-# 36159 "parser_cocci_menhir.ml"
+# 36551 "parser_cocci_menhir.ml"
         ) = 
-# 2391 "parser_cocci_menhir.mly"
+# 2427 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name py), None), Some _2) )
-# 36163 "parser_cocci_menhir.ml"
+# 36555 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36207,13 +36599,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 230 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
-# 36213 "parser_cocci_menhir.ml"
+# 36605 "parser_cocci_menhir.ml"
         ) = 
-# 2393 "parser_cocci_menhir.mly"
+# 2429 "parser_cocci_menhir.mly"
   ( ((None, Some (P.id2name ast)), Some _6) )
-# 36217 "parser_cocci_menhir.ml"
+# 36609 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36261,13 +36653,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 230 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
-# 36267 "parser_cocci_menhir.ml"
+# 36659 "parser_cocci_menhir.ml"
         ) = 
-# 2395 "parser_cocci_menhir.mly"
+# 2431 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name str), None), Some _6) )
-# 36271 "parser_cocci_menhir.ml"
+# 36663 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36317,13 +36709,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 230 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
-# 36323 "parser_cocci_menhir.ml"
+# 36715 "parser_cocci_menhir.ml"
         ) = 
-# 2397 "parser_cocci_menhir.mly"
+# 2433 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name str), Some (P.id2name ast)), Some _6) )
-# 36327 "parser_cocci_menhir.ml"
+# 36719 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36356,18 +36748,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let cocci : 'tv_pure_ident = Obj.magic cocci in
         let _2 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 36362 "parser_cocci_menhir.ml"
+# 36754 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_cocci_ in
         let _v : 'tv_script_name_decl = 
-# 2401 "parser_cocci_menhir.mly"
+# 2437 "parser_cocci_menhir.mly"
       ( let nm = P.id2name cocci in
         let mv = Parse_aux.lookup _2 nm in
         ((_2, nm), mv) )
-# 36371 "parser_cocci_menhir.ml"
+# 36763 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36401,7 +36793,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_cocci_ in
         let _v : 'tv_script_name_decl = 
-# 2405 "parser_cocci_menhir.mly"
+# 2441 "parser_cocci_menhir.mly"
       ( let nm = P.id2name cocci in
         Iteration.parsed_virtual_identifiers :=
           Common.union_set [nm]
@@ -36409,7 +36801,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let name = ("virtual", nm) in
         let mv = Ast.MetaIdDecl(Ast.NONE,name) in
         (name,mv) )
-# 36413 "parser_cocci_menhir.ml"
+# 36805 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36428,16 +36820,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 36434 "parser_cocci_menhir.ml"
+# 36826 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_seed_elem = 
-# 1760 "parser_cocci_menhir.mly"
+# 1796 "parser_cocci_menhir.mly"
           ( let (x,_) = _1 in Ast.SeedString x )
-# 36441 "parser_cocci_menhir.ml"
+# 36833 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36456,16 +36848,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 128 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
-# 36462 "parser_cocci_menhir.ml"
+# 36854 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_seed_elem = 
-# 1761 "parser_cocci_menhir.mly"
+# 1797 "parser_cocci_menhir.mly"
           ( let (x,_,_,_,_) = _1 in Ast.SeedId x )
-# 36469 "parser_cocci_menhir.ml"
+# 36861 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36485,9 +36877,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_seed_elem = 
-# 1762 "parser_cocci_menhir.mly"
+# 1798 "parser_cocci_menhir.mly"
         (failwith "tmeta")
-# 36491 "parser_cocci_menhir.ml"
+# 36883 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36517,14 +36909,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_seed_elem = 
-# 1764 "parser_cocci_menhir.mly"
+# 1800 "parser_cocci_menhir.mly"
     ( let nm = ("virtual",P.id2name _3) in
      Iteration.parsed_virtual_identifiers :=
        Common.union_set [snd nm]
         !Iteration.parsed_virtual_identifiers;
     try Ast.SeedString (List.assoc (snd nm) !Flag.defined_virtual_env)
     with Not_found -> Ast.SeedId nm )
-# 36528 "parser_cocci_menhir.ml"
+# 36920 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36553,18 +36945,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_pure_ident = Obj.magic _3 in
         let _1 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 36559 "parser_cocci_menhir.ml"
+# 36951 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_seed_elem = 
-# 1771 "parser_cocci_menhir.mly"
+# 1807 "parser_cocci_menhir.mly"
     ( let nm = (_1,P.id2name _3) in
       P.check_meta(Ast.MetaIdDecl(Ast.NONE,nm));
       Ast.SeedId nm )
-# 36568 "parser_cocci_menhir.ml"
+# 36960 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36583,16 +36975,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let x : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 36589 "parser_cocci_menhir.ml"
+# 36981 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_x_ in
         let _v : 'tv_separated_nonempty_list_TComma_TString_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 36596 "parser_cocci_menhir.ml"
+# 36988 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36621,16 +37013,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in
         let x : (
-# 156 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 36627 "parser_cocci_menhir.ml"
+# 37019 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_xs_ in
         let _v : 'tv_separated_nonempty_list_TComma_TString_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 36634 "parser_cocci_menhir.ml"
+# 37026 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36654,7 +37046,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 36658 "parser_cocci_menhir.ml"
+# 37050 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36688,7 +37080,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 36692 "parser_cocci_menhir.ml"
+# 37084 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36712,7 +37104,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_ctype_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 36716 "parser_cocci_menhir.ml"
+# 37108 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36746,7 +37138,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_ctype_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 36750 "parser_cocci_menhir.ml"
+# 37142 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36770,7 +37162,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 36774 "parser_cocci_menhir.ml"
+# 37166 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36804,7 +37196,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 36808 "parser_cocci_menhir.ml"
+# 37200 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36828,7 +37220,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 36832 "parser_cocci_menhir.ml"
+# 37224 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36862,7 +37254,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 36866 "parser_cocci_menhir.ml"
+# 37258 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36886,7 +37278,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 36890 "parser_cocci_menhir.ml"
+# 37282 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36920,7 +37312,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 36924 "parser_cocci_menhir.ml"
+# 37316 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36944,7 +37336,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 36948 "parser_cocci_menhir.ml"
+# 37340 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -36978,7 +37370,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 36982 "parser_cocci_menhir.ml"
+# 37374 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37002,7 +37394,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37006 "parser_cocci_menhir.ml"
+# 37398 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37036,7 +37428,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37040 "parser_cocci_menhir.ml"
+# 37432 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37060,7 +37452,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37064 "parser_cocci_menhir.ml"
+# 37456 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37094,7 +37486,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37098 "parser_cocci_menhir.ml"
+# 37490 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37118,7 +37510,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37122 "parser_cocci_menhir.ml"
+# 37514 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37152,7 +37544,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37156 "parser_cocci_menhir.ml"
+# 37548 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37176,7 +37568,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37180 "parser_cocci_menhir.ml"
+# 37572 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37210,7 +37602,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37214 "parser_cocci_menhir.ml"
+# 37606 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37234,7 +37626,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37238 "parser_cocci_menhir.ml"
+# 37630 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37268,7 +37660,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37272 "parser_cocci_menhir.ml"
+# 37664 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37292,7 +37684,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37296 "parser_cocci_menhir.ml"
+# 37688 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37326,7 +37718,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37330 "parser_cocci_menhir.ml"
+# 37722 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37350,7 +37742,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37354 "parser_cocci_menhir.ml"
+# 37746 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37384,7 +37776,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37388 "parser_cocci_menhir.ml"
+# 37780 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37408,7 +37800,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37412 "parser_cocci_menhir.ml"
+# 37804 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37442,7 +37834,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37446 "parser_cocci_menhir.ml"
+# 37838 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37466,7 +37858,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = 
 # 144 "standard.mly"
     ( [ x ] )
-# 37470 "parser_cocci_menhir.ml"
+# 37862 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37500,7 +37892,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = 
 # 146 "standard.mly"
     ( x :: xs )
-# 37504 "parser_cocci_menhir.ml"
+# 37896 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37522,9 +37914,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_single_statement = 
-# 1174 "parser_cocci_menhir.mly"
+# 1177 "parser_cocci_menhir.mly"
                                       ( _1 )
-# 37528 "parser_cocci_menhir.ml"
+# 37920 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37553,26 +37945,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37559 "parser_cocci_menhir.ml"
+# 37951 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37565 "parser_cocci_menhir.ml"
+# 37957 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_single_statement = 
-# 1178 "parser_cocci_menhir.mly"
+# 1181 "parser_cocci_menhir.mly"
       ( let (mids,code) = _2 in
         Ast0.wrap
          (Ast0.Disj(P.clt2mcode "(" _1,
                     List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code,
                     mids, P.clt2mcode ")" _3)) )
-# 37576 "parser_cocci_menhir.ml"
+# 37968 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37594,9 +37986,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_statement = 
-# 1100 "parser_cocci_menhir.mly"
+# 1103 "parser_cocci_menhir.mly"
            ( _1 )
-# 37600 "parser_cocci_menhir.ml"
+# 37992 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37615,16 +38007,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 37621 "parser_cocci_menhir.ml"
+# 38013 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_statement = 
-# 1101 "parser_cocci_menhir.mly"
+# 1104 "parser_cocci_menhir.mly"
         ( tmeta_to_statement _1)
-# 37628 "parser_cocci_menhir.ml"
+# 38020 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37643,16 +38035,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 37649 "parser_cocci_menhir.ml"
+# 38041 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_statement = 
-# 1103 "parser_cocci_menhir.mly"
+# 1106 "parser_cocci_menhir.mly"
     ( P.meta_stm _1 )
-# 37656 "parser_cocci_menhir.ml"
+# 38048 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37676,17 +38068,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37682 "parser_cocci_menhir.ml"
+# 38074 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_option_expr_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1105 "parser_cocci_menhir.mly"
+# 1108 "parser_cocci_menhir.mly"
     ( P.exp_stm _1 _2 )
-# 37690 "parser_cocci_menhir.ml"
+# 38082 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37726,27 +38118,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37732 "parser_cocci_menhir.ml"
+# 38124 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37738 "parser_cocci_menhir.ml"
+# 38130 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37743 "parser_cocci_menhir.ml"
+# 38135 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_statement = 
-# 1107 "parser_cocci_menhir.mly"
+# 1110 "parser_cocci_menhir.mly"
     ( P.ifthen _1 _2 _3 _4 _5 )
-# 37750 "parser_cocci_menhir.ml"
+# 38142 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37796,33 +38188,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _7 : 'tv_single_statement = Obj.magic _7 in
         let _6 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37802 "parser_cocci_menhir.ml"
+# 38194 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37808 "parser_cocci_menhir.ml"
+# 38200 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37814 "parser_cocci_menhir.ml"
+# 38206 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37819 "parser_cocci_menhir.ml"
+# 38211 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : 'tv_statement = 
-# 1109 "parser_cocci_menhir.mly"
+# 1112 "parser_cocci_menhir.mly"
     ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 )
-# 37826 "parser_cocci_menhir.ml"
+# 38218 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37882,39 +38274,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _9 : 'tv_single_statement = Obj.magic _9 in
         let _8 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37888 "parser_cocci_menhir.ml"
+# 38280 "parser_cocci_menhir.ml"
         ) = Obj.magic _8 in
         let _7 : 'tv_option_eexpr_ = Obj.magic _7 in
         let _6 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37894 "parser_cocci_menhir.ml"
+# 38286 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_option_eexpr_ = Obj.magic _5 in
         let _4 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37900 "parser_cocci_menhir.ml"
+# 38292 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_option_eexpr_ = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37906 "parser_cocci_menhir.ml"
+# 38298 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37911 "parser_cocci_menhir.ml"
+# 38303 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_statement = 
-# 1112 "parser_cocci_menhir.mly"
+# 1115 "parser_cocci_menhir.mly"
     ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 )
-# 37918 "parser_cocci_menhir.ml"
+# 38310 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -37954,27 +38346,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37960 "parser_cocci_menhir.ml"
+# 38352 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37966 "parser_cocci_menhir.ml"
+# 38358 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 37971 "parser_cocci_menhir.ml"
+# 38363 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_statement = 
-# 1114 "parser_cocci_menhir.mly"
+# 1117 "parser_cocci_menhir.mly"
     ( P.whileloop _1 _2 _3 _4 _5 )
-# 37978 "parser_cocci_menhir.ml"
+# 38370 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38023,38 +38415,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _7 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38029 "parser_cocci_menhir.ml"
+# 38421 "parser_cocci_menhir.ml"
         ) = Obj.magic _7 in
         let _6 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38034 "parser_cocci_menhir.ml"
+# 38426 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_eexpr = Obj.magic _5 in
         let _4 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38040 "parser_cocci_menhir.ml"
+# 38432 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38045 "parser_cocci_menhir.ml"
+# 38437 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_single_statement = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38051 "parser_cocci_menhir.ml"
+# 38443 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : 'tv_statement = 
-# 1116 "parser_cocci_menhir.mly"
+# 1119 "parser_cocci_menhir.mly"
     ( P.doloop _1 _2 _3 _4 _5 _6 _7 )
-# 38058 "parser_cocci_menhir.ml"
+# 38450 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38094,23 +38486,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38100 "parser_cocci_menhir.ml"
+# 38492 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38106 "parser_cocci_menhir.ml"
+# 38498 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_iter_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_statement = 
-# 1118 "parser_cocci_menhir.mly"
+# 1121 "parser_cocci_menhir.mly"
     ( P.iterator _1 _2 _3 _4 _5 )
-# 38114 "parser_cocci_menhir.ml"
+# 38506 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38164,39 +38556,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _8 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38170 "parser_cocci_menhir.ml"
+# 38562 "parser_cocci_menhir.ml"
         ) = Obj.magic _8 in
         let _7 : 'tv_list_case_line_ = Obj.magic _7 in
         let _6 : 'tv_list_decl_var_ = Obj.magic _6 in
         let _5 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38177 "parser_cocci_menhir.ml"
+# 38569 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38182 "parser_cocci_menhir.ml"
+# 38574 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38188 "parser_cocci_menhir.ml"
+# 38580 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38193 "parser_cocci_menhir.ml"
+# 38585 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__8_ in
         let _v : 'tv_statement = 
-# 1120 "parser_cocci_menhir.mly"
+# 1123 "parser_cocci_menhir.mly"
     ( P.switch _1 _2 _3 _4 _5 (List.concat _6) _7 _8 )
-# 38200 "parser_cocci_menhir.ml"
+# 38592 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38225,22 +38617,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38231 "parser_cocci_menhir.ml"
+# 38623 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38237 "parser_cocci_menhir.ml"
+# 38629 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_statement = 
-# 1121 "parser_cocci_menhir.mly"
+# 1124 "parser_cocci_menhir.mly"
                         ( P.ret_exp _1 _2 _3 )
-# 38244 "parser_cocci_menhir.ml"
+# 38636 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38264,21 +38656,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38270 "parser_cocci_menhir.ml"
+# 38662 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 123 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38275 "parser_cocci_menhir.ml"
+# 38667 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1122 "parser_cocci_menhir.mly"
+# 1125 "parser_cocci_menhir.mly"
                   ( P.ret _1 _2 )
-# 38282 "parser_cocci_menhir.ml"
+# 38674 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38302,21 +38694,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38308 "parser_cocci_menhir.ml"
+# 38700 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38313 "parser_cocci_menhir.ml"
+# 38705 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1123 "parser_cocci_menhir.mly"
+# 1126 "parser_cocci_menhir.mly"
                  ( P.break _1 _2 )
-# 38320 "parser_cocci_menhir.ml"
+# 38712 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38340,21 +38732,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38346 "parser_cocci_menhir.ml"
+# 38738 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38351 "parser_cocci_menhir.ml"
+# 38743 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1124 "parser_cocci_menhir.mly"
+# 1127 "parser_cocci_menhir.mly"
                     ( P.cont _1 _2 )
-# 38358 "parser_cocci_menhir.ml"
+# 38750 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38378,17 +38770,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38384 "parser_cocci_menhir.ml"
+# 38776 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_mident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1125 "parser_cocci_menhir.mly"
+# 1128 "parser_cocci_menhir.mly"
                  ( P.label _1 _2 )
-# 38392 "parser_cocci_menhir.ml"
+# 38784 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38417,22 +38809,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38423 "parser_cocci_menhir.ml"
+# 38815 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_disj_ident = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38429 "parser_cocci_menhir.ml"
+# 38821 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_statement = 
-# 1126 "parser_cocci_menhir.mly"
+# 1129 "parser_cocci_menhir.mly"
                            ( P.goto _1 _2 _3 )
-# 38436 "parser_cocci_menhir.ml"
+# 38828 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38461,22 +38853,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38467 "parser_cocci_menhir.ml"
+# 38859 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_fun_start = Obj.magic _2 in
         let _1 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38473 "parser_cocci_menhir.ml"
+# 38865 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_statement = 
-# 1128 "parser_cocci_menhir.mly"
+# 1131 "parser_cocci_menhir.mly"
     ( P.seq _1 _2 _3 )
-# 38480 "parser_cocci_menhir.ml"
+# 38872 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38501,16 +38893,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_list_whenppdecs_ = Obj.magic w in
         let _1 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38507 "parser_cocci_menhir.ml"
+# 38899 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_w_ in
         let _v : 'tv_stm_dots = 
-# 1132 "parser_cocci_menhir.mly"
+# 1135 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) )
-# 38514 "parser_cocci_menhir.ml"
+# 38906 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38544,24 +38936,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38550 "parser_cocci_menhir.ml"
+# 38942 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let b : 'tv_nest_start = Obj.magic b in
         let w : 'tv_list_whenppdecs_ = Obj.magic w in
         let _1 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38557 "parser_cocci_menhir.ml"
+# 38949 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_stm_dots = 
-# 1134 "parser_cocci_menhir.mly"
+# 1137 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b,
                          P.clt2mcode "...>" c, List.concat w, false)) )
-# 38565 "parser_cocci_menhir.ml"
+# 38957 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38595,24 +38987,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38601 "parser_cocci_menhir.ml"
+# 38993 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let b : 'tv_nest_start = Obj.magic b in
         let w : 'tv_list_whenppdecs_ = Obj.magic w in
         let _1 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38608 "parser_cocci_menhir.ml"
+# 39000 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_stm_dots = 
-# 1137 "parser_cocci_menhir.mly"
+# 1140 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b,
                          P.clt2mcode "...+>" c, List.concat w, true)) )
-# 38616 "parser_cocci_menhir.ml"
+# 39008 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38631,16 +39023,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
-# 38637 "parser_cocci_menhir.ml"
+# 39029 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1061 "parser_cocci_menhir.mly"
+# 1064 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Static s )
-# 38644 "parser_cocci_menhir.ml"
+# 39036 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38659,16 +39051,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
-# 38665 "parser_cocci_menhir.ml"
+# 39057 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1062 "parser_cocci_menhir.mly"
+# 1065 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Auto s )
-# 38672 "parser_cocci_menhir.ml"
+# 39064 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38687,16 +39079,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
-# 38693 "parser_cocci_menhir.ml"
+# 39085 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1063 "parser_cocci_menhir.mly"
+# 1066 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Register s )
-# 38700 "parser_cocci_menhir.ml"
+# 39092 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38715,16 +39107,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 119 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
-# 38721 "parser_cocci_menhir.ml"
+# 39113 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1064 "parser_cocci_menhir.mly"
+# 1067 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Extern s )
-# 38728 "parser_cocci_menhir.ml"
+# 39120 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38744,9 +39136,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl = 
-# 756 "parser_cocci_menhir.mly"
+# 759 "parser_cocci_menhir.mly"
                       ( [] )
-# 38750 "parser_cocci_menhir.ml"
+# 39142 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38768,9 +39160,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl = 
-# 757 "parser_cocci_menhir.mly"
+# 760 "parser_cocci_menhir.mly"
                       ( [_1] )
-# 38774 "parser_cocci_menhir.ml"
+# 39166 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38792,9 +39184,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_list = 
-# 785 "parser_cocci_menhir.mly"
+# 788 "parser_cocci_menhir.mly"
                           ( Ast0.wrap(Ast0.DOTS(_1)) )
-# 38798 "parser_cocci_menhir.ml"
+# 39190 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38816,9 +39208,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_list_start = 
-# 788 "parser_cocci_menhir.mly"
+# 791 "parser_cocci_menhir.mly"
                                      ( _1 )
-# 38822 "parser_cocci_menhir.ml"
+# 39214 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38846,9 +39238,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_struct_decl_list_start = 
-# 789 "parser_cocci_menhir.mly"
+# 792 "parser_cocci_menhir.mly"
                                      ( _1@_2 )
-# 38852 "parser_cocci_menhir.ml"
+# 39244 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38876,9 +39268,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_struct_decl_list_start = 
-# 791 "parser_cocci_menhir.mly"
+# 794 "parser_cocci_menhir.mly"
     ( (P.mkddots_one "..." d)::r )
-# 38882 "parser_cocci_menhir.ml"
+# 39274 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38897,16 +39289,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 38903 "parser_cocci_menhir.ml"
+# 39295 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_one = 
-# 760 "parser_cocci_menhir.mly"
+# 763 "parser_cocci_menhir.mly"
                  ( P.meta_field _1 )
-# 38910 "parser_cocci_menhir.ml"
+# 39302 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38925,16 +39317,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 135 "parser_cocci_menhir.mly"
+# 137 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 38931 "parser_cocci_menhir.ml"
+# 39323 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_one = 
-# 761 "parser_cocci_menhir.mly"
+# 764 "parser_cocci_menhir.mly"
                      ( P.meta_field_list _1 )
-# 38938 "parser_cocci_menhir.ml"
+# 39330 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38953,16 +39345,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 38959 "parser_cocci_menhir.ml"
+# 39351 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_one = 
-# 762 "parser_cocci_menhir.mly"
+# 765 "parser_cocci_menhir.mly"
             ( tmeta_to_field _1 )
-# 38966 "parser_cocci_menhir.ml"
+# 39358 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -38991,24 +39383,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 38997 "parser_cocci_menhir.ml"
+# 39389 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_struct_decl_one_struct_decl_one_ = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39003 "parser_cocci_menhir.ml"
+# 39395 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_struct_decl_one = 
-# 764 "parser_cocci_menhir.mly"
+# 767 "parser_cocci_menhir.mly"
  ( let (mids,code) = t in
        Ast0.wrap
          (Ast0.DisjDecl(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
-# 39012 "parser_cocci_menhir.ml"
+# 39404 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39037,19 +39429,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39043 "parser_cocci_menhir.ml"
+# 39435 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_struct_decl_one = 
-# 768 "parser_cocci_menhir.mly"
+# 771 "parser_cocci_menhir.mly"
   ( let (id,fn) = d in
         Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv)) )
-# 39053 "parser_cocci_menhir.ml"
+# 39445 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39108,42 +39500,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39114 "parser_cocci_menhir.ml"
+# 39506 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39119 "parser_cocci_menhir.ml"
+# 39511 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39125 "parser_cocci_menhir.ml"
+# 39517 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39130 "parser_cocci_menhir.ml"
+# 39522 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39136 "parser_cocci_menhir.ml"
+# 39528 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39141 "parser_cocci_menhir.ml"
+# 39533 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_struct_decl_one = 
-# 772 "parser_cocci_menhir.mly"
+# 775 "parser_cocci_menhir.mly"
         ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -39151,7 +39543,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
                P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
         Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv)) )
-# 39155 "parser_cocci_menhir.ml"
+# 39547 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39180,9 +39572,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39186 "parser_cocci_menhir.ml"
+# 39578 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -39192,15 +39584,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 39 "standard.mly"
     ( None )
-# 39196 "parser_cocci_menhir.ml"
+# 39588 "parser_cocci_menhir.ml"
           
         in
         
-# 780 "parser_cocci_menhir.mly"
+# 783 "parser_cocci_menhir.mly"
   ( let (id,fn) = d in
         let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
         Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv)) )
-# 39204 "parser_cocci_menhir.ml"
+# 39596 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39234,9 +39626,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 176 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39240 "parser_cocci_menhir.ml"
+# 39632 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let d : 'tv_d_ident = Obj.magic d in
         let i : 'tv_pure_ident_or_symbol = Obj.magic i in
@@ -39248,15 +39640,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 39252 "parser_cocci_menhir.ml"
+# 39644 "parser_cocci_menhir.ml"
           
         in
         
-# 780 "parser_cocci_menhir.mly"
+# 783 "parser_cocci_menhir.mly"
   ( let (id,fn) = d in
         let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
         Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv)) )
-# 39260 "parser_cocci_menhir.ml"
+# 39652 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39275,16 +39667,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 39281 "parser_cocci_menhir.ml"
+# 39673 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_struct_or_union = 
-# 752 "parser_cocci_menhir.mly"
+# 755 "parser_cocci_menhir.mly"
                  ( P.clt2mcode Ast.Struct s )
-# 39288 "parser_cocci_menhir.ml"
+# 39680 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39303,16 +39695,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let u : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 39309 "parser_cocci_menhir.ml"
+# 39701 "parser_cocci_menhir.ml"
         ) = Obj.magic u in
         let _startpos = _startpos_u_ in
         let _endpos = _endpos_u_ in
         let _v : 'tv_struct_or_union = 
-# 753 "parser_cocci_menhir.mly"
+# 756 "parser_cocci_menhir.mly"
                  ( P.clt2mcode Ast.Union u )
-# 39316 "parser_cocci_menhir.ml"
+# 39708 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39338,7 +39730,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_sub = 
-# 1915 "parser_cocci_menhir.mly"
+# 1951 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -39347,7 +39739,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             P.check_inherited_constraint i
               (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None)) in
           [i] )
-# 39351 "parser_cocci_menhir.ml"
+# 39743 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39381,7 +39773,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_sub = 
-# 1924 "parser_cocci_menhir.mly"
+# 1960 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -39391,7 +39783,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               P.check_inherited_constraint i
                 (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None)))
             l)
-# 39395 "parser_cocci_menhir.ml"
+# 39787 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39413,9 +39805,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_top_eexpr = 
-# 1450 "parser_cocci_menhir.mly"
+# 1479 "parser_cocci_menhir.mly"
         ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) )
-# 39419 "parser_cocci_menhir.ml"
+# 39811 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39444,27 +39836,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39450 "parser_cocci_menhir.ml"
+# 39842 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_initialize_list = Obj.magic _2 in
         let _1 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39456 "parser_cocci_menhir.ml"
+# 39848 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_top_init = 
-# 2178 "parser_cocci_menhir.mly"
+# 2214 "parser_cocci_menhir.mly"
     ( if P.struct_initializer _2
     then
       let il = P.drop_dot_commas _2 in
       Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false))
     else
       Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) )
-# 39468 "parser_cocci_menhir.ml"
+# 39860 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39479,9 +39871,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_toplevel_after_dots = 
-# 2166 "parser_cocci_menhir.mly"
+# 2202 "parser_cocci_menhir.mly"
                                      ([])
-# 39485 "parser_cocci_menhir.ml"
+# 39877 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39507,9 +39899,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots = 
-# 2167 "parser_cocci_menhir.mly"
+# 2203 "parser_cocci_menhir.mly"
                                      (_2)
-# 39513 "parser_cocci_menhir.ml"
+# 39905 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39537,9 +39929,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots = 
-# 2168 "parser_cocci_menhir.mly"
+# 2204 "parser_cocci_menhir.mly"
                                      ((Ast0.wrap(Ast0.Exp(_1)))::_2)
-# 39543 "parser_cocci_menhir.ml"
+# 39935 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39567,9 +39959,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots = 
-# 2169 "parser_cocci_menhir.mly"
+# 2205 "parser_cocci_menhir.mly"
                                           (_1@_2)
-# 39573 "parser_cocci_menhir.ml"
+# 39965 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39595,9 +39987,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots_init = 
-# 2157 "parser_cocci_menhir.mly"
+# 2193 "parser_cocci_menhir.mly"
                                      (_2)
-# 39601 "parser_cocci_menhir.ml"
+# 39993 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39625,9 +40017,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots_init = 
-# 2158 "parser_cocci_menhir.mly"
+# 2194 "parser_cocci_menhir.mly"
                                      ((Ast0.wrap(Ast0.Exp(_1)))::_2)
-# 39631 "parser_cocci_menhir.ml"
+# 40023 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39655,9 +40047,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots_init = 
-# 2159 "parser_cocci_menhir.mly"
+# 2195 "parser_cocci_menhir.mly"
                                           (_1@_2)
-# 39661 "parser_cocci_menhir.ml"
+# 40053 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39672,9 +40064,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_toplevel_after_exp = 
-# 2162 "parser_cocci_menhir.mly"
+# 2198 "parser_cocci_menhir.mly"
                                      ([])
-# 39678 "parser_cocci_menhir.ml"
+# 40070 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39702,9 +40094,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_exp = 
-# 2163 "parser_cocci_menhir.mly"
+# 2199 "parser_cocci_menhir.mly"
                                      (_1::_2)
-# 39708 "parser_cocci_menhir.ml"
+# 40100 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39719,9 +40111,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_toplevel_after_stm = 
-# 2172 "parser_cocci_menhir.mly"
+# 2208 "parser_cocci_menhir.mly"
                                      ([])
-# 39725 "parser_cocci_menhir.ml"
+# 40117 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39749,9 +40141,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_stm = 
-# 2173 "parser_cocci_menhir.mly"
+# 2209 "parser_cocci_menhir.mly"
                                      (_1::_2)
-# 39755 "parser_cocci_menhir.ml"
+# 40147 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39779,9 +40171,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_stm = 
-# 2174 "parser_cocci_menhir.mly"
+# 2210 "parser_cocci_menhir.mly"
                                      (_1@_2)
-# 39785 "parser_cocci_menhir.ml"
+# 40177 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39809,9 +40201,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
-# 2152 "parser_cocci_menhir.mly"
+# 2188 "parser_cocci_menhir.mly"
                                      ( _1::_2 )
-# 39815 "parser_cocci_menhir.ml"
+# 40207 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39839,9 +40231,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
-# 2153 "parser_cocci_menhir.mly"
+# 2189 "parser_cocci_menhir.mly"
                                      ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
-# 39845 "parser_cocci_menhir.ml"
+# 40237 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39869,9 +40261,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
-# 2154 "parser_cocci_menhir.mly"
+# 2190 "parser_cocci_menhir.mly"
                                           ( _1@_2 )
-# 39875 "parser_cocci_menhir.ml"
+# 40267 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39902,9 +40294,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let b : 'tv_toplevel_after_dots_init = Obj.magic b in
         let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
         let a0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39908 "parser_cocci_menhir.ml"
+# 40300 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
         let _startpos = _startpos_a0_ in
         let _endpos = _endpos_b_ in
@@ -39912,15 +40304,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1142 "parser_cocci_menhir.mly"
+# 1145 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) )
-# 39918 "parser_cocci_menhir.ml"
+# 40310 "parser_cocci_menhir.ml"
           
         in
         
-# 2145 "parser_cocci_menhir.mly"
+# 2181 "parser_cocci_menhir.mly"
                                              ( a::b )
-# 39924 "parser_cocci_menhir.ml"
+# 40316 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -39960,16 +40352,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_toplevel_after_dots_init = Obj.magic b in
         let c0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39966 "parser_cocci_menhir.ml"
+# 40358 "parser_cocci_menhir.ml"
         ) = Obj.magic c0 in
         let b0 : 'tv_nest_start = Obj.magic b0 in
         let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
         let a0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 39973 "parser_cocci_menhir.ml"
+# 40365 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
         let _startpos = _startpos_a0_ in
         let _endpos = _endpos_b_ in
@@ -39979,16 +40371,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1146 "parser_cocci_menhir.mly"
+# 1149 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
                          P.clt2mcode "...>" c, List.concat w, false)) )
-# 39986 "parser_cocci_menhir.ml"
+# 40378 "parser_cocci_menhir.ml"
           
         in
         
-# 2146 "parser_cocci_menhir.mly"
+# 2182 "parser_cocci_menhir.mly"
                                               ( a::b )
-# 39992 "parser_cocci_menhir.ml"
+# 40384 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40028,16 +40420,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_toplevel_after_dots_init = Obj.magic b in
         let c0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 40034 "parser_cocci_menhir.ml"
+# 40426 "parser_cocci_menhir.ml"
         ) = Obj.magic c0 in
         let b0 : 'tv_nest_start = Obj.magic b0 in
         let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
         let a0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 40041 "parser_cocci_menhir.ml"
+# 40433 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
         let _startpos = _startpos_a0_ in
         let _endpos = _endpos_b_ in
@@ -40047,16 +40439,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1149 "parser_cocci_menhir.mly"
+# 1152 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
                          P.clt2mcode "...+>" c, List.concat w, true)) )
-# 40054 "parser_cocci_menhir.ml"
+# 40446 "parser_cocci_menhir.ml"
           
         in
         
-# 2146 "parser_cocci_menhir.mly"
+# 2182 "parser_cocci_menhir.mly"
                                               ( a::b )
-# 40060 "parser_cocci_menhir.ml"
+# 40452 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40090,16 +40482,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 40096 "parser_cocci_menhir.ml"
+# 40488 "parser_cocci_menhir.ml"
         ) = Obj.magic c0 in
         let b0 : 'tv_nest_start = Obj.magic b0 in
         let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
         let a0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 40103 "parser_cocci_menhir.ml"
+# 40495 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
         let _startpos = _startpos_a0_ in
         let _endpos = _endpos_c0_ in
@@ -40109,16 +40501,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1146 "parser_cocci_menhir.mly"
+# 1149 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
                          P.clt2mcode "...>" c, List.concat w, false)) )
-# 40116 "parser_cocci_menhir.ml"
+# 40508 "parser_cocci_menhir.ml"
           
         in
         
-# 2147 "parser_cocci_menhir.mly"
+# 2183 "parser_cocci_menhir.mly"
                                        ( [a] )
-# 40122 "parser_cocci_menhir.ml"
+# 40514 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40152,16 +40544,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 40158 "parser_cocci_menhir.ml"
+# 40550 "parser_cocci_menhir.ml"
         ) = Obj.magic c0 in
         let b0 : 'tv_nest_start = Obj.magic b0 in
         let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
         let a0 : (
-# 142 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
-# 40165 "parser_cocci_menhir.ml"
+# 40557 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
         let _startpos = _startpos_a0_ in
         let _endpos = _endpos_c0_ in
@@ -40171,16 +40563,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1149 "parser_cocci_menhir.mly"
+# 1152 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
                          P.clt2mcode "...+>" c, List.concat w, true)) )
-# 40178 "parser_cocci_menhir.ml"
+# 40570 "parser_cocci_menhir.ml"
           
         in
         
-# 2147 "parser_cocci_menhir.mly"
+# 2183 "parser_cocci_menhir.mly"
                                        ( [a] )
-# 40184 "parser_cocci_menhir.ml"
+# 40576 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40208,9 +40600,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = 
-# 2148 "parser_cocci_menhir.mly"
+# 2184 "parser_cocci_menhir.mly"
                                      ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
-# 40214 "parser_cocci_menhir.ml"
+# 40606 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40238,9 +40630,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = 
-# 2149 "parser_cocci_menhir.mly"
+# 2185 "parser_cocci_menhir.mly"
                                           ( _1@_2 )
-# 40244 "parser_cocci_menhir.ml"
+# 40636 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40262,9 +40654,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_type_ident = 
-# 2003 "parser_cocci_menhir.mly"
+# 2039 "parser_cocci_menhir.mly"
                        ( _1 )
-# 40268 "parser_cocci_menhir.ml"
+# 40660 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40283,16 +40675,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 40289 "parser_cocci_menhir.ml"
+# 40681 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_type_ident = 
-# 2005 "parser_cocci_menhir.mly"
+# 2041 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 40296 "parser_cocci_menhir.ml"
+# 40688 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40322,14 +40714,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40328 "parser_cocci_menhir.ml"
+# 40720 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40333 "parser_cocci_menhir.ml"
+# 40725 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40339,28 +40731,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 40345 "parser_cocci_menhir.ml"
+# 40737 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40351 "parser_cocci_menhir.ml"
+# 40743 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40358 "parser_cocci_menhir.ml"
+# 40750 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40364 "parser_cocci_menhir.ml"
+# 40756 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40390,14 +40782,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40396 "parser_cocci_menhir.ml"
+# 40788 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40401 "parser_cocci_menhir.ml"
+# 40793 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40407,28 +40799,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 40413 "parser_cocci_menhir.ml"
+# 40805 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40419 "parser_cocci_menhir.ml"
+# 40811 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40426 "parser_cocci_menhir.ml"
+# 40818 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40432 "parser_cocci_menhir.ml"
+# 40824 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40463,19 +40855,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40469 "parser_cocci_menhir.ml"
+# 40861 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40474 "parser_cocci_menhir.ml"
+# 40866 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40479 "parser_cocci_menhir.ml"
+# 40871 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40487,30 +40879,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 40495 "parser_cocci_menhir.ml"
+# 40887 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40501 "parser_cocci_menhir.ml"
+# 40893 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40508 "parser_cocci_menhir.ml"
+# 40900 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40514 "parser_cocci_menhir.ml"
+# 40906 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40540,14 +40932,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40546 "parser_cocci_menhir.ml"
+# 40938 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40551 "parser_cocci_menhir.ml"
+# 40943 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40557,28 +40949,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 40563 "parser_cocci_menhir.ml"
+# 40955 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40569 "parser_cocci_menhir.ml"
+# 40961 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40576 "parser_cocci_menhir.ml"
+# 40968 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40582 "parser_cocci_menhir.ml"
+# 40974 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40608,14 +41000,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 40614 "parser_cocci_menhir.ml"
+# 41006 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40619 "parser_cocci_menhir.ml"
+# 41011 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40625,29 +41017,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 40632 "parser_cocci_menhir.ml"
+# 41024 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40638 "parser_cocci_menhir.ml"
+# 41030 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40645 "parser_cocci_menhir.ml"
+# 41037 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40651 "parser_cocci_menhir.ml"
+# 41043 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40686,19 +41078,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 40692 "parser_cocci_menhir.ml"
+# 41084 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 40697 "parser_cocci_menhir.ml"
+# 41089 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40702 "parser_cocci_menhir.ml"
+# 41094 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let _startpos = _startpos_r1_ in
         let _endpos = _endpos_m_ in
@@ -40710,33 +41102,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 40721 "parser_cocci_menhir.ml"
+# 41113 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40727 "parser_cocci_menhir.ml"
+# 41119 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40734 "parser_cocci_menhir.ml"
+# 41126 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40740 "parser_cocci_menhir.ml"
+# 41132 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40766,14 +41158,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40772 "parser_cocci_menhir.ml"
+# 41164 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40777 "parser_cocci_menhir.ml"
+# 41169 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40783,28 +41175,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 40789 "parser_cocci_menhir.ml"
+# 41181 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40795 "parser_cocci_menhir.ml"
+# 41187 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40802 "parser_cocci_menhir.ml"
+# 41194 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40808 "parser_cocci_menhir.ml"
+# 41200 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40839,19 +41231,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40845 "parser_cocci_menhir.ml"
+# 41237 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40850 "parser_cocci_menhir.ml"
+# 41242 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40855 "parser_cocci_menhir.ml"
+# 41247 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40863,30 +41255,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 40871 "parser_cocci_menhir.ml"
+# 41263 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40877 "parser_cocci_menhir.ml"
+# 41269 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40884 "parser_cocci_menhir.ml"
+# 41276 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40890 "parser_cocci_menhir.ml"
+# 41282 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -40921,19 +41313,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40927 "parser_cocci_menhir.ml"
+# 41319 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40932 "parser_cocci_menhir.ml"
+# 41324 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40937 "parser_cocci_menhir.ml"
+# 41329 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -40945,31 +41337,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 40954 "parser_cocci_menhir.ml"
+# 41346 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 40960 "parser_cocci_menhir.ml"
+# 41352 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 40967 "parser_cocci_menhir.ml"
+# 41359 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 40973 "parser_cocci_menhir.ml"
+# 41365 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41009,24 +41401,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41015 "parser_cocci_menhir.ml"
+# 41407 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41020 "parser_cocci_menhir.ml"
+# 41412 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41025 "parser_cocci_menhir.ml"
+# 41417 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41030 "parser_cocci_menhir.ml"
+# 41422 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41040,32 +41432,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 41050 "parser_cocci_menhir.ml"
+# 41442 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 41056 "parser_cocci_menhir.ml"
+# 41448 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41063 "parser_cocci_menhir.ml"
+# 41455 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41069 "parser_cocci_menhir.ml"
+# 41461 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41095,14 +41487,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41101 "parser_cocci_menhir.ml"
+# 41493 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41106 "parser_cocci_menhir.ml"
+# 41498 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41112,28 +41504,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 41118 "parser_cocci_menhir.ml"
+# 41510 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41124 "parser_cocci_menhir.ml"
+# 41516 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41131 "parser_cocci_menhir.ml"
+# 41523 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41137 "parser_cocci_menhir.ml"
+# 41529 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41163,14 +41555,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41169 "parser_cocci_menhir.ml"
+# 41561 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41174 "parser_cocci_menhir.ml"
+# 41566 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41180,28 +41572,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 41186 "parser_cocci_menhir.ml"
+# 41578 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41192 "parser_cocci_menhir.ml"
+# 41584 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41199 "parser_cocci_menhir.ml"
+# 41591 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41205 "parser_cocci_menhir.ml"
+# 41597 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41236,19 +41628,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41242 "parser_cocci_menhir.ml"
+# 41634 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41247 "parser_cocci_menhir.ml"
+# 41639 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41252 "parser_cocci_menhir.ml"
+# 41644 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41260,30 +41652,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 41268 "parser_cocci_menhir.ml"
+# 41660 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41274 "parser_cocci_menhir.ml"
+# 41666 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41281 "parser_cocci_menhir.ml"
+# 41673 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41287 "parser_cocci_menhir.ml"
+# 41679 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41313,14 +41705,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41319 "parser_cocci_menhir.ml"
+# 41711 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41324 "parser_cocci_menhir.ml"
+# 41716 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41330,28 +41722,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 41336 "parser_cocci_menhir.ml"
+# 41728 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41342 "parser_cocci_menhir.ml"
+# 41734 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41349 "parser_cocci_menhir.ml"
+# 41741 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41355 "parser_cocci_menhir.ml"
+# 41747 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41381,14 +41773,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 41387 "parser_cocci_menhir.ml"
+# 41779 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41392 "parser_cocci_menhir.ml"
+# 41784 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41398,29 +41790,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 41405 "parser_cocci_menhir.ml"
+# 41797 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41411 "parser_cocci_menhir.ml"
+# 41803 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41418 "parser_cocci_menhir.ml"
+# 41810 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41424 "parser_cocci_menhir.ml"
+# 41816 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41459,19 +41851,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 41465 "parser_cocci_menhir.ml"
+# 41857 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 41470 "parser_cocci_menhir.ml"
+# 41862 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41475 "parser_cocci_menhir.ml"
+# 41867 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let _startpos = _startpos_r1_ in
         let _endpos = _endpos_m_ in
@@ -41483,33 +41875,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 41494 "parser_cocci_menhir.ml"
+# 41886 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41500 "parser_cocci_menhir.ml"
+# 41892 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41507 "parser_cocci_menhir.ml"
+# 41899 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41513 "parser_cocci_menhir.ml"
+# 41905 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41539,14 +41931,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41545 "parser_cocci_menhir.ml"
+# 41937 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41550 "parser_cocci_menhir.ml"
+# 41942 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41556,28 +41948,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 41562 "parser_cocci_menhir.ml"
+# 41954 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41568 "parser_cocci_menhir.ml"
+# 41960 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41575 "parser_cocci_menhir.ml"
+# 41967 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41581 "parser_cocci_menhir.ml"
+# 41973 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41612,19 +42004,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41618 "parser_cocci_menhir.ml"
+# 42010 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41623 "parser_cocci_menhir.ml"
+# 42015 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41628 "parser_cocci_menhir.ml"
+# 42020 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41636,30 +42028,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 41644 "parser_cocci_menhir.ml"
+# 42036 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41650 "parser_cocci_menhir.ml"
+# 42042 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41657 "parser_cocci_menhir.ml"
+# 42049 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41663 "parser_cocci_menhir.ml"
+# 42055 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41694,19 +42086,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41700 "parser_cocci_menhir.ml"
+# 42092 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41705 "parser_cocci_menhir.ml"
+# 42097 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41710 "parser_cocci_menhir.ml"
+# 42102 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41718,31 +42110,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 41727 "parser_cocci_menhir.ml"
+# 42119 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41733 "parser_cocci_menhir.ml"
+# 42125 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41740 "parser_cocci_menhir.ml"
+# 42132 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41746 "parser_cocci_menhir.ml"
+# 42138 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41782,24 +42174,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41788 "parser_cocci_menhir.ml"
+# 42180 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41793 "parser_cocci_menhir.ml"
+# 42185 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41798 "parser_cocci_menhir.ml"
+# 42190 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41803 "parser_cocci_menhir.ml"
+# 42195 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let _startpos = _startpos_r0_ in
         let _endpos = _endpos_m_ in
@@ -41813,32 +42205,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 41823 "parser_cocci_menhir.ml"
+# 42215 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 41829 "parser_cocci_menhir.ml"
+# 42221 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41836 "parser_cocci_menhir.ml"
+# 42228 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41842 "parser_cocci_menhir.ml"
+# 42234 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41863,9 +42255,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41869 "parser_cocci_menhir.ml"
+# 42261 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -41874,28 +42266,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 41880 "parser_cocci_menhir.ml"
+# 42272 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 41886 "parser_cocci_menhir.ml"
+# 42278 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41893 "parser_cocci_menhir.ml"
+# 42285 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41899 "parser_cocci_menhir.ml"
+# 42291 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41920,9 +42312,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41926 "parser_cocci_menhir.ml"
+# 42318 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -41931,28 +42323,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 41937 "parser_cocci_menhir.ml"
+# 42329 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 41943 "parser_cocci_menhir.ml"
+# 42335 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 41950 "parser_cocci_menhir.ml"
+# 42342 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 41956 "parser_cocci_menhir.ml"
+# 42348 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -41982,14 +42374,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41988 "parser_cocci_menhir.ml"
+# 42380 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 41993 "parser_cocci_menhir.ml"
+# 42385 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -42000,30 +42392,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 42008 "parser_cocci_menhir.ml"
+# 42400 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42014 "parser_cocci_menhir.ml"
+# 42406 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42021 "parser_cocci_menhir.ml"
+# 42413 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42027 "parser_cocci_menhir.ml"
+# 42419 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42048,9 +42440,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42054 "parser_cocci_menhir.ml"
+# 42446 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -42059,28 +42451,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 42065 "parser_cocci_menhir.ml"
+# 42457 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42071 "parser_cocci_menhir.ml"
+# 42463 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42078 "parser_cocci_menhir.ml"
+# 42470 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42084 "parser_cocci_menhir.ml"
+# 42476 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42105,9 +42497,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 42111 "parser_cocci_menhir.ml"
+# 42503 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let _startpos = _startpos_p00_ in
         let _endpos = _endpos_m_ in
@@ -42116,29 +42508,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 42123 "parser_cocci_menhir.ml"
+# 42515 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42129 "parser_cocci_menhir.ml"
+# 42521 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42136 "parser_cocci_menhir.ml"
+# 42528 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42142 "parser_cocci_menhir.ml"
+# 42534 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42172,14 +42564,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 42178 "parser_cocci_menhir.ml"
+# 42570 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 42183 "parser_cocci_menhir.ml"
+# 42575 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let _startpos = _startpos_r00_ in
         let _endpos = _endpos_m_ in
@@ -42190,33 +42582,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 42201 "parser_cocci_menhir.ml"
+# 42593 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42207 "parser_cocci_menhir.ml"
+# 42599 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42214 "parser_cocci_menhir.ml"
+# 42606 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42220 "parser_cocci_menhir.ml"
+# 42612 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42241,9 +42633,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42247 "parser_cocci_menhir.ml"
+# 42639 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -42252,28 +42644,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 42258 "parser_cocci_menhir.ml"
+# 42650 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42264 "parser_cocci_menhir.ml"
+# 42656 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42271 "parser_cocci_menhir.ml"
+# 42663 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42277 "parser_cocci_menhir.ml"
+# 42669 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42303,14 +42695,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42309 "parser_cocci_menhir.ml"
+# 42701 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42314 "parser_cocci_menhir.ml"
+# 42706 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -42321,30 +42713,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 42329 "parser_cocci_menhir.ml"
+# 42721 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42335 "parser_cocci_menhir.ml"
+# 42727 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42342 "parser_cocci_menhir.ml"
+# 42734 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42348 "parser_cocci_menhir.ml"
+# 42740 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42374,14 +42766,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42380 "parser_cocci_menhir.ml"
+# 42772 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42385 "parser_cocci_menhir.ml"
+# 42777 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -42392,31 +42784,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 42401 "parser_cocci_menhir.ml"
+# 42793 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42407 "parser_cocci_menhir.ml"
+# 42799 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42414 "parser_cocci_menhir.ml"
+# 42806 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42420 "parser_cocci_menhir.ml"
+# 42812 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42451,19 +42843,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42457 "parser_cocci_menhir.ml"
+# 42849 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42462 "parser_cocci_menhir.ml"
+# 42854 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42467 "parser_cocci_menhir.ml"
+# 42859 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -42476,32 +42868,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 42486 "parser_cocci_menhir.ml"
+# 42878 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 42492 "parser_cocci_menhir.ml"
+# 42884 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42499 "parser_cocci_menhir.ml"
+# 42891 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42505 "parser_cocci_menhir.ml"
+# 42897 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42526,9 +42918,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42532 "parser_cocci_menhir.ml"
+# 42924 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -42537,28 +42929,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 675 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
-# 42543 "parser_cocci_menhir.ml"
+# 42935 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42549 "parser_cocci_menhir.ml"
+# 42941 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42556 "parser_cocci_menhir.ml"
+# 42948 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42562 "parser_cocci_menhir.ml"
+# 42954 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42588,14 +42980,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42594 "parser_cocci_menhir.ml"
+# 42986 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42599 "parser_cocci_menhir.ml"
+# 42991 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let _startpos = _startpos_ty100_ in
         let _endpos = _endpos_m_ in
@@ -42606,31 +42998,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 677 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
            [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) )
-# 42615 "parser_cocci_menhir.ml"
+# 43007 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42621 "parser_cocci_menhir.ml"
+# 43013 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42628 "parser_cocci_menhir.ml"
+# 43020 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42634 "parser_cocci_menhir.ml"
+# 43026 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42655,9 +43047,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42661 "parser_cocci_menhir.ml"
+# 43053 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -42666,28 +43058,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 682 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
-# 42672 "parser_cocci_menhir.ml"
+# 43064 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42678 "parser_cocci_menhir.ml"
+# 43070 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42685 "parser_cocci_menhir.ml"
+# 43077 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42691 "parser_cocci_menhir.ml"
+# 43083 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42712,9 +43104,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42718 "parser_cocci_menhir.ml"
+# 43110 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -42723,28 +43115,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 684 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
-# 42729 "parser_cocci_menhir.ml"
+# 43121 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42735 "parser_cocci_menhir.ml"
+# 43127 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42742 "parser_cocci_menhir.ml"
+# 43134 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42748 "parser_cocci_menhir.ml"
+# 43140 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42769,9 +43161,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42775 "parser_cocci_menhir.ml"
+# 43167 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -42780,28 +43172,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 686 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
-# 42786 "parser_cocci_menhir.ml"
+# 43178 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42792 "parser_cocci_menhir.ml"
+# 43184 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42799 "parser_cocci_menhir.ml"
+# 43191 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42805 "parser_cocci_menhir.ml"
+# 43197 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42826,9 +43218,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42832 "parser_cocci_menhir.ml"
+# 43224 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -42837,28 +43229,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 688 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
-# 42843 "parser_cocci_menhir.ml"
+# 43235 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42849 "parser_cocci_menhir.ml"
+# 43241 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42856 "parser_cocci_menhir.ml"
+# 43248 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42862 "parser_cocci_menhir.ml"
+# 43254 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42883,9 +43275,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42889 "parser_cocci_menhir.ml"
+# 43281 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let _startpos = _startpos_ty00_ in
         let _endpos = _endpos_m_ in
@@ -42894,28 +43286,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 690 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
-# 42900 "parser_cocci_menhir.ml"
+# 43292 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42906 "parser_cocci_menhir.ml"
+# 43298 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42913 "parser_cocci_menhir.ml"
+# 43305 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42919 "parser_cocci_menhir.ml"
+# 43311 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -42946,9 +43338,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let m : 'tv_list_TMul_ = Obj.magic m in
         let i00 : 'tv_ident = Obj.magic i00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 42952 "parser_cocci_menhir.ml"
+# 43344 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -42959,28 +43351,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 692 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
-# 42965 "parser_cocci_menhir.ml"
+# 43357 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 42971 "parser_cocci_menhir.ml"
+# 43363 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 42978 "parser_cocci_menhir.ml"
+# 43370 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 42984 "parser_cocci_menhir.ml"
+# 43376 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43020,20 +43412,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43026 "parser_cocci_menhir.ml"
+# 43418 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43032 "parser_cocci_menhir.ml"
+# 43424 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43037 "parser_cocci_menhir.ml"
+# 43429 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -43051,35 +43443,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 43055 "parser_cocci_menhir.ml"
+# 43447 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 43064 "parser_cocci_menhir.ml"
+# 43456 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 43070 "parser_cocci_menhir.ml"
+# 43462 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 43077 "parser_cocci_menhir.ml"
+# 43469 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43083 "parser_cocci_menhir.ml"
+# 43475 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43124,21 +43516,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43130 "parser_cocci_menhir.ml"
+# 43522 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43136 "parser_cocci_menhir.ml"
+# 43528 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43142 "parser_cocci_menhir.ml"
+# 43534 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -43159,35 +43551,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 43163 "parser_cocci_menhir.ml"
+# 43555 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 43172 "parser_cocci_menhir.ml"
+# 43564 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 43178 "parser_cocci_menhir.ml"
+# 43570 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 43185 "parser_cocci_menhir.ml"
+# 43577 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43191 "parser_cocci_menhir.ml"
+# 43583 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43227,28 +43619,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 699 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
-# 43233 "parser_cocci_menhir.ml"
+# 43625 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 43239 "parser_cocci_menhir.ml"
+# 43631 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 43246 "parser_cocci_menhir.ml"
+# 43638 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43252 "parser_cocci_menhir.ml"
+# 43644 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43288,15 +43680,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43294 "parser_cocci_menhir.ml"
+# 43686 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43300 "parser_cocci_menhir.ml"
+# 43692 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
@@ -43315,36 +43707,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 43319 "parser_cocci_menhir.ml"
+# 43711 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 43329 "parser_cocci_menhir.ml"
+# 43721 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 43335 "parser_cocci_menhir.ml"
+# 43727 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 43342 "parser_cocci_menhir.ml"
+# 43734 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43348 "parser_cocci_menhir.ml"
+# 43740 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43389,15 +43781,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43395 "parser_cocci_menhir.ml"
+# 43787 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43401 "parser_cocci_menhir.ml"
+# 43793 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_type_ident = Obj.magic x000 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
@@ -43420,36 +43812,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 43424 "parser_cocci_menhir.ml"
+# 43816 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 43434 "parser_cocci_menhir.ml"
+# 43826 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 43440 "parser_cocci_menhir.ml"
+# 43832 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 43447 "parser_cocci_menhir.ml"
+# 43839 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43453 "parser_cocci_menhir.ml"
+# 43845 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43489,20 +43881,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43495 "parser_cocci_menhir.ml"
+# 43887 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 43501 "parser_cocci_menhir.ml"
+# 43893 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 43506 "parser_cocci_menhir.ml"
+# 43898 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let _startpos = _startpos_s00_ in
         let _endpos = _endpos_m_ in
@@ -43517,30 +43909,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 708 "parser_cocci_menhir.mly"
+# 711 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = s in
     let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
     Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
-# 43525 "parser_cocci_menhir.ml"
+# 43917 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 43531 "parser_cocci_menhir.ml"
+# 43923 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 43538 "parser_cocci_menhir.ml"
+# 43930 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43544 "parser_cocci_menhir.ml"
+# 43936 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43565,9 +43957,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 43571 "parser_cocci_menhir.ml"
+# 43963 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let _startpos = _startpos_p00_ in
         let _endpos = _endpos_m_ in
@@ -43576,28 +43968,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 712 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
-# 43582 "parser_cocci_menhir.ml"
+# 43974 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 43588 "parser_cocci_menhir.ml"
+# 43980 "parser_cocci_menhir.ml"
           
         in
         let cv =
           
 # 39 "standard.mly"
     ( None )
-# 43595 "parser_cocci_menhir.ml"
+# 43987 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43601 "parser_cocci_menhir.ml"
+# 43993 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43632,14 +44024,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43638 "parser_cocci_menhir.ml"
+# 44030 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43643 "parser_cocci_menhir.ml"
+# 44035 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -43650,15 +44042,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 43656 "parser_cocci_menhir.ml"
+# 44048 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 43662 "parser_cocci_menhir.ml"
+# 44054 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -43666,13 +44058,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 43670 "parser_cocci_menhir.ml"
+# 44062 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43676 "parser_cocci_menhir.ml"
+# 44068 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43707,14 +44099,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43713 "parser_cocci_menhir.ml"
+# 44105 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43718 "parser_cocci_menhir.ml"
+# 44110 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -43725,15 +44117,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 43731 "parser_cocci_menhir.ml"
+# 44123 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 43737 "parser_cocci_menhir.ml"
+# 44129 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -43741,13 +44133,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 43745 "parser_cocci_menhir.ml"
+# 44137 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43751 "parser_cocci_menhir.ml"
+# 44143 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43787,19 +44179,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43793 "parser_cocci_menhir.ml"
+# 44185 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43798 "parser_cocci_menhir.ml"
+# 44190 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43803 "parser_cocci_menhir.ml"
+# 44195 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -43812,17 +44204,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 43820 "parser_cocci_menhir.ml"
+# 44212 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 43826 "parser_cocci_menhir.ml"
+# 44218 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -43830,13 +44222,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 43834 "parser_cocci_menhir.ml"
+# 44226 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43840 "parser_cocci_menhir.ml"
+# 44232 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43871,14 +44263,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43877 "parser_cocci_menhir.ml"
+# 44269 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43882 "parser_cocci_menhir.ml"
+# 44274 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -43889,15 +44281,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 43895 "parser_cocci_menhir.ml"
+# 44287 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 43901 "parser_cocci_menhir.ml"
+# 44293 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -43905,13 +44297,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 43909 "parser_cocci_menhir.ml"
+# 44301 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43915 "parser_cocci_menhir.ml"
+# 44307 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -43946,14 +44338,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 43952 "parser_cocci_menhir.ml"
+# 44344 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 43957 "parser_cocci_menhir.ml"
+# 44349 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -43964,16 +44356,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 43971 "parser_cocci_menhir.ml"
+# 44363 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 43977 "parser_cocci_menhir.ml"
+# 44369 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -43981,13 +44373,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 43985 "parser_cocci_menhir.ml"
+# 44377 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 43991 "parser_cocci_menhir.ml"
+# 44383 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44031,19 +44423,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 44037 "parser_cocci_menhir.ml"
+# 44429 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 44042 "parser_cocci_menhir.ml"
+# 44434 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44047 "parser_cocci_menhir.ml"
+# 44439 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44056,20 +44448,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 44067 "parser_cocci_menhir.ml"
+# 44459 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 44073 "parser_cocci_menhir.ml"
+# 44465 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44077,13 +44469,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44081 "parser_cocci_menhir.ml"
+# 44473 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44087 "parser_cocci_menhir.ml"
+# 44479 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44118,14 +44510,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44124 "parser_cocci_menhir.ml"
+# 44516 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44129 "parser_cocci_menhir.ml"
+# 44521 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44136,15 +44528,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 44142 "parser_cocci_menhir.ml"
+# 44534 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 44148 "parser_cocci_menhir.ml"
+# 44540 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44152,13 +44544,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44156 "parser_cocci_menhir.ml"
+# 44548 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44162 "parser_cocci_menhir.ml"
+# 44554 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44198,19 +44590,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44204 "parser_cocci_menhir.ml"
+# 44596 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44209 "parser_cocci_menhir.ml"
+# 44601 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44214 "parser_cocci_menhir.ml"
+# 44606 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44223,17 +44615,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 44231 "parser_cocci_menhir.ml"
+# 44623 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 44237 "parser_cocci_menhir.ml"
+# 44629 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44241,13 +44633,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44245 "parser_cocci_menhir.ml"
+# 44637 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44251 "parser_cocci_menhir.ml"
+# 44643 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44287,19 +44679,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44293 "parser_cocci_menhir.ml"
+# 44685 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44298 "parser_cocci_menhir.ml"
+# 44690 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44303 "parser_cocci_menhir.ml"
+# 44695 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44312,18 +44704,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 44321 "parser_cocci_menhir.ml"
+# 44713 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 44327 "parser_cocci_menhir.ml"
+# 44719 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44331,13 +44723,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44335 "parser_cocci_menhir.ml"
+# 44727 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44341 "parser_cocci_menhir.ml"
+# 44733 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44382,24 +44774,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44388 "parser_cocci_menhir.ml"
+# 44780 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44393 "parser_cocci_menhir.ml"
+# 44785 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44398 "parser_cocci_menhir.ml"
+# 44790 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44403 "parser_cocci_menhir.ml"
+# 44795 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44414,19 +44806,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 44424 "parser_cocci_menhir.ml"
+# 44816 "parser_cocci_menhir.ml"
             
           in
           
-# 717 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
-# 44430 "parser_cocci_menhir.ml"
+# 44822 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44434,13 +44826,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44438 "parser_cocci_menhir.ml"
+# 44830 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44444 "parser_cocci_menhir.ml"
+# 44836 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44475,14 +44867,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44481 "parser_cocci_menhir.ml"
+# 44873 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44486 "parser_cocci_menhir.ml"
+# 44878 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44493,15 +44885,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 44499 "parser_cocci_menhir.ml"
+# 44891 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 44505 "parser_cocci_menhir.ml"
+# 44897 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44509,13 +44901,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44513 "parser_cocci_menhir.ml"
+# 44905 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44519 "parser_cocci_menhir.ml"
+# 44911 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44550,14 +44942,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44556 "parser_cocci_menhir.ml"
+# 44948 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44561 "parser_cocci_menhir.ml"
+# 44953 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44568,15 +44960,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 44574 "parser_cocci_menhir.ml"
+# 44966 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 44580 "parser_cocci_menhir.ml"
+# 44972 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44584,13 +44976,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44588 "parser_cocci_menhir.ml"
+# 44980 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44594 "parser_cocci_menhir.ml"
+# 44986 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44630,19 +45022,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44636 "parser_cocci_menhir.ml"
+# 45028 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44641 "parser_cocci_menhir.ml"
+# 45033 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44646 "parser_cocci_menhir.ml"
+# 45038 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44655,17 +45047,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 44663 "parser_cocci_menhir.ml"
+# 45055 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 44669 "parser_cocci_menhir.ml"
+# 45061 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44673,13 +45065,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44677 "parser_cocci_menhir.ml"
+# 45069 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44683 "parser_cocci_menhir.ml"
+# 45075 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44714,14 +45106,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44720 "parser_cocci_menhir.ml"
+# 45112 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44725 "parser_cocci_menhir.ml"
+# 45117 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44732,15 +45124,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 44738 "parser_cocci_menhir.ml"
+# 45130 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 44744 "parser_cocci_menhir.ml"
+# 45136 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44748,13 +45140,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44752 "parser_cocci_menhir.ml"
+# 45144 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44758 "parser_cocci_menhir.ml"
+# 45150 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44789,14 +45181,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 44795 "parser_cocci_menhir.ml"
+# 45187 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44800 "parser_cocci_menhir.ml"
+# 45192 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44807,16 +45199,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 44814 "parser_cocci_menhir.ml"
+# 45206 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 44820 "parser_cocci_menhir.ml"
+# 45212 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44824,13 +45216,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44828 "parser_cocci_menhir.ml"
+# 45220 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44834 "parser_cocci_menhir.ml"
+# 45226 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44874,19 +45266,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 44880 "parser_cocci_menhir.ml"
+# 45272 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 44885 "parser_cocci_menhir.ml"
+# 45277 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44890 "parser_cocci_menhir.ml"
+# 45282 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44899,20 +45291,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 44910 "parser_cocci_menhir.ml"
+# 45302 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 44916 "parser_cocci_menhir.ml"
+# 45308 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44920,13 +45312,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44924 "parser_cocci_menhir.ml"
+# 45316 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 44930 "parser_cocci_menhir.ml"
+# 45322 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -44961,14 +45353,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44967 "parser_cocci_menhir.ml"
+# 45359 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 44972 "parser_cocci_menhir.ml"
+# 45364 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -44979,15 +45371,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 44985 "parser_cocci_menhir.ml"
+# 45377 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 44991 "parser_cocci_menhir.ml"
+# 45383 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -44995,13 +45387,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 44999 "parser_cocci_menhir.ml"
+# 45391 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45005 "parser_cocci_menhir.ml"
+# 45397 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45041,19 +45433,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45047 "parser_cocci_menhir.ml"
+# 45439 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45052 "parser_cocci_menhir.ml"
+# 45444 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45057 "parser_cocci_menhir.ml"
+# 45449 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45066,17 +45458,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 45074 "parser_cocci_menhir.ml"
+# 45466 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 45080 "parser_cocci_menhir.ml"
+# 45472 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45084,13 +45476,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45088 "parser_cocci_menhir.ml"
+# 45480 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45094 "parser_cocci_menhir.ml"
+# 45486 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45130,19 +45522,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45136 "parser_cocci_menhir.ml"
+# 45528 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45141 "parser_cocci_menhir.ml"
+# 45533 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45146 "parser_cocci_menhir.ml"
+# 45538 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45155,18 +45547,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 45164 "parser_cocci_menhir.ml"
+# 45556 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 45170 "parser_cocci_menhir.ml"
+# 45562 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45174,13 +45566,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45178 "parser_cocci_menhir.ml"
+# 45570 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45184 "parser_cocci_menhir.ml"
+# 45576 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45225,24 +45617,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45231 "parser_cocci_menhir.ml"
+# 45623 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45236 "parser_cocci_menhir.ml"
+# 45628 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45241 "parser_cocci_menhir.ml"
+# 45633 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 117 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45246 "parser_cocci_menhir.ml"
+# 45638 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45257,19 +45649,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 45267 "parser_cocci_menhir.ml"
+# 45659 "parser_cocci_menhir.ml"
             
           in
           
-# 719 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
-# 45273 "parser_cocci_menhir.ml"
+# 45665 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45277,13 +45669,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45281 "parser_cocci_menhir.ml"
+# 45673 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45287 "parser_cocci_menhir.ml"
+# 45679 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45313,9 +45705,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45319 "parser_cocci_menhir.ml"
+# 45711 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45325,15 +45717,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 635 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
-# 45331 "parser_cocci_menhir.ml"
+# 45723 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45337 "parser_cocci_menhir.ml"
+# 45729 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45341,13 +45733,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45345 "parser_cocci_menhir.ml"
+# 45737 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45351 "parser_cocci_menhir.ml"
+# 45743 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45377,9 +45769,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45383 "parser_cocci_menhir.ml"
+# 45775 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45389,15 +45781,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 637 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
-# 45395 "parser_cocci_menhir.ml"
+# 45787 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45401 "parser_cocci_menhir.ml"
+# 45793 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45405,13 +45797,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45409 "parser_cocci_menhir.ml"
+# 45801 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45415 "parser_cocci_menhir.ml"
+# 45807 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45446,14 +45838,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45452 "parser_cocci_menhir.ml"
+# 45844 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45457 "parser_cocci_menhir.ml"
+# 45849 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45465,17 +45857,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 639 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
-# 45473 "parser_cocci_menhir.ml"
+# 45865 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45479 "parser_cocci_menhir.ml"
+# 45871 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45483,13 +45875,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45487 "parser_cocci_menhir.ml"
+# 45879 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45493 "parser_cocci_menhir.ml"
+# 45885 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45519,9 +45911,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45525 "parser_cocci_menhir.ml"
+# 45917 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45531,15 +45923,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 643 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
-# 45537 "parser_cocci_menhir.ml"
+# 45929 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45543 "parser_cocci_menhir.ml"
+# 45935 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45547,13 +45939,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45551 "parser_cocci_menhir.ml"
+# 45943 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45557 "parser_cocci_menhir.ml"
+# 45949 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45583,9 +45975,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 45589 "parser_cocci_menhir.ml"
+# 45981 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45595,16 +45987,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 645 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 45602 "parser_cocci_menhir.ml"
+# 45994 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45608 "parser_cocci_menhir.ml"
+# 46000 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45612,13 +46004,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45616 "parser_cocci_menhir.ml"
+# 46008 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45622 "parser_cocci_menhir.ml"
+# 46014 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45657,14 +46049,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 45663 "parser_cocci_menhir.ml"
+# 46055 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 112 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
-# 45668 "parser_cocci_menhir.ml"
+# 46060 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45676,20 +46068,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 648 "parser_cocci_menhir.mly"
+# 651 "parser_cocci_menhir.mly"
     ( let nm = (r,P.id2name p) in
     (* this is only possible when we are in a metavar decl.  Otherwise,
        it will be represented already as a MetaType *)
     let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
     Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
                            Ast0.Impure (*will be ignored*))) )
-# 45687 "parser_cocci_menhir.ml"
+# 46079 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45693 "parser_cocci_menhir.ml"
+# 46085 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45697,13 +46089,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45701 "parser_cocci_menhir.ml"
+# 46093 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45707 "parser_cocci_menhir.ml"
+# 46099 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45733,9 +46125,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45739 "parser_cocci_menhir.ml"
+# 46131 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45745,15 +46137,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 655 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
-# 45751 "parser_cocci_menhir.ml"
+# 46143 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45757 "parser_cocci_menhir.ml"
+# 46149 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45761,13 +46153,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45765 "parser_cocci_menhir.ml"
+# 46157 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45771 "parser_cocci_menhir.ml"
+# 46163 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45802,14 +46194,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45808 "parser_cocci_menhir.ml"
+# 46200 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45813 "parser_cocci_menhir.ml"
+# 46205 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45821,17 +46213,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 657 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
-# 45829 "parser_cocci_menhir.ml"
+# 46221 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45835 "parser_cocci_menhir.ml"
+# 46227 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45839,13 +46231,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45843 "parser_cocci_menhir.ml"
+# 46235 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45849 "parser_cocci_menhir.ml"
+# 46241 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45880,14 +46272,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45886 "parser_cocci_menhir.ml"
+# 46278 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45891 "parser_cocci_menhir.ml"
+# 46283 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45899,18 +46291,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 661 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
-# 45908 "parser_cocci_menhir.ml"
+# 46300 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 45914 "parser_cocci_menhir.ml"
+# 46306 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -45918,13 +46310,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 45922 "parser_cocci_menhir.ml"
+# 46314 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 45928 "parser_cocci_menhir.ml"
+# 46320 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -45964,19 +46356,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45970 "parser_cocci_menhir.ml"
+# 46362 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45975 "parser_cocci_menhir.ml"
+# 46367 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45980 "parser_cocci_menhir.ml"
+# 46372 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -45990,19 +46382,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 666 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
            [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2;
              P.clt2mcode "int" ty3])) )
-# 46000 "parser_cocci_menhir.ml"
+# 46392 "parser_cocci_menhir.ml"
             
           in
           
-# 720 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
-# 46006 "parser_cocci_menhir.ml"
+# 46398 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46010,13 +46402,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46014 "parser_cocci_menhir.ml"
+# 46406 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46020 "parser_cocci_menhir.ml"
+# 46412 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46046,9 +46438,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46052 "parser_cocci_menhir.ml"
+# 46444 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46058,15 +46450,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 675 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
-# 46064 "parser_cocci_menhir.ml"
+# 46456 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46070 "parser_cocci_menhir.ml"
+# 46462 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46074,13 +46466,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46078 "parser_cocci_menhir.ml"
+# 46470 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46084 "parser_cocci_menhir.ml"
+# 46476 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46115,14 +46507,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46121 "parser_cocci_menhir.ml"
+# 46513 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46126 "parser_cocci_menhir.ml"
+# 46518 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46134,18 +46526,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 677 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
            [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) )
-# 46143 "parser_cocci_menhir.ml"
+# 46535 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46149 "parser_cocci_menhir.ml"
+# 46541 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46153,13 +46545,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46157 "parser_cocci_menhir.ml"
+# 46549 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46163 "parser_cocci_menhir.ml"
+# 46555 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46189,9 +46581,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46195 "parser_cocci_menhir.ml"
+# 46587 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46201,15 +46593,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 682 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
-# 46207 "parser_cocci_menhir.ml"
+# 46599 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46213 "parser_cocci_menhir.ml"
+# 46605 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46217,13 +46609,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46221 "parser_cocci_menhir.ml"
+# 46613 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46227 "parser_cocci_menhir.ml"
+# 46619 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46253,9 +46645,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 114 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46259 "parser_cocci_menhir.ml"
+# 46651 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46265,15 +46657,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 684 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
-# 46271 "parser_cocci_menhir.ml"
+# 46663 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46277 "parser_cocci_menhir.ml"
+# 46669 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46281,13 +46673,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46285 "parser_cocci_menhir.ml"
+# 46677 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46291 "parser_cocci_menhir.ml"
+# 46683 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46317,9 +46709,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46323 "parser_cocci_menhir.ml"
+# 46715 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46329,15 +46721,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 686 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
-# 46335 "parser_cocci_menhir.ml"
+# 46727 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46341 "parser_cocci_menhir.ml"
+# 46733 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46345,13 +46737,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46349 "parser_cocci_menhir.ml"
+# 46741 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46355 "parser_cocci_menhir.ml"
+# 46747 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46381,9 +46773,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46387 "parser_cocci_menhir.ml"
+# 46779 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46393,15 +46785,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 688 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
-# 46399 "parser_cocci_menhir.ml"
+# 46791 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46405 "parser_cocci_menhir.ml"
+# 46797 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46409,13 +46801,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46413 "parser_cocci_menhir.ml"
+# 46805 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46419 "parser_cocci_menhir.ml"
+# 46811 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46445,9 +46837,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 115 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46451 "parser_cocci_menhir.ml"
+# 46843 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46457,15 +46849,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 690 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
-# 46463 "parser_cocci_menhir.ml"
+# 46855 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46469 "parser_cocci_menhir.ml"
+# 46861 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46473,13 +46865,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46477 "parser_cocci_menhir.ml"
+# 46869 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46483 "parser_cocci_menhir.ml"
+# 46875 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46515,9 +46907,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let m : 'tv_list_TMul_ = Obj.magic m in
         let i00 : 'tv_ident = Obj.magic i00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46521 "parser_cocci_menhir.ml"
+# 46913 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46529,15 +46921,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 692 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
-# 46535 "parser_cocci_menhir.ml"
+# 46927 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46541 "parser_cocci_menhir.ml"
+# 46933 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46545,13 +46937,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46549 "parser_cocci_menhir.ml"
+# 46941 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46555 "parser_cocci_menhir.ml"
+# 46947 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46596,20 +46988,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 46602 "parser_cocci_menhir.ml"
+# 46994 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 46608 "parser_cocci_menhir.ml"
+# 47000 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46613 "parser_cocci_menhir.ml"
+# 47005 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46628,22 +47020,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 46632 "parser_cocci_menhir.ml"
+# 47024 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 46641 "parser_cocci_menhir.ml"
+# 47033 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46647 "parser_cocci_menhir.ml"
+# 47039 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46651,13 +47043,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46655 "parser_cocci_menhir.ml"
+# 47047 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46661 "parser_cocci_menhir.ml"
+# 47053 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46707,21 +47099,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 46713 "parser_cocci_menhir.ml"
+# 47105 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 46719 "parser_cocci_menhir.ml"
+# 47111 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 116 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
-# 46725 "parser_cocci_menhir.ml"
+# 47117 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -46743,22 +47135,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 46747 "parser_cocci_menhir.ml"
+# 47139 "parser_cocci_menhir.ml"
               
             in
             
-# 694 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
                             P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
-# 46756 "parser_cocci_menhir.ml"
+# 47148 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46762 "parser_cocci_menhir.ml"
+# 47154 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46766,13 +47158,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46770 "parser_cocci_menhir.ml"
+# 47162 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46776 "parser_cocci_menhir.ml"
+# 47168 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46818,15 +47210,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 699 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
-# 46824 "parser_cocci_menhir.ml"
+# 47216 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46830 "parser_cocci_menhir.ml"
+# 47222 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46834,13 +47226,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46838 "parser_cocci_menhir.ml"
+# 47230 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46844 "parser_cocci_menhir.ml"
+# 47236 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46885,15 +47277,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 46891 "parser_cocci_menhir.ml"
+# 47283 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 46897 "parser_cocci_menhir.ml"
+# 47289 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
@@ -46913,23 +47305,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 39 "standard.mly"
     ( None )
-# 46917 "parser_cocci_menhir.ml"
+# 47309 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 46927 "parser_cocci_menhir.ml"
+# 47319 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 46933 "parser_cocci_menhir.ml"
+# 47325 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -46937,13 +47329,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 46941 "parser_cocci_menhir.ml"
+# 47333 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 46947 "parser_cocci_menhir.ml"
+# 47339 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -46993,15 +47385,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 46999 "parser_cocci_menhir.ml"
+# 47391 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47005 "parser_cocci_menhir.ml"
+# 47397 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_type_ident = Obj.magic x000 in
         let s00 : 'tv_struct_or_union = Obj.magic s00 in
@@ -47025,23 +47417,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
 # 41 "standard.mly"
     ( Some x )
-# 47029 "parser_cocci_menhir.ml"
+# 47421 "parser_cocci_menhir.ml"
               
             in
             
-# 702 "parser_cocci_menhir.mly"
+# 705 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "structures must be named in the iso file");
       Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
                                    P.clt2mcode "{" l,
                                    d, P.clt2mcode "}" r)) )
-# 47039 "parser_cocci_menhir.ml"
+# 47431 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 47045 "parser_cocci_menhir.ml"
+# 47437 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -47049,13 +47441,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 47053 "parser_cocci_menhir.ml"
+# 47445 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 47059 "parser_cocci_menhir.ml"
+# 47451 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47100,20 +47492,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47106 "parser_cocci_menhir.ml"
+# 47498 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 170 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47112 "parser_cocci_menhir.ml"
+# 47504 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 47117 "parser_cocci_menhir.ml"
+# 47509 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -47129,17 +47521,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 708 "parser_cocci_menhir.mly"
+# 711 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = s in
     let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
     Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
-# 47137 "parser_cocci_menhir.ml"
+# 47529 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 47143 "parser_cocci_menhir.ml"
+# 47535 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -47147,13 +47539,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 47151 "parser_cocci_menhir.ml"
+# 47543 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 47157 "parser_cocci_menhir.ml"
+# 47549 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47183,9 +47575,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 47189 "parser_cocci_menhir.ml"
+# 47581 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
@@ -47195,15 +47587,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 712 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
-# 47201 "parser_cocci_menhir.ml"
+# 47593 "parser_cocci_menhir.ml"
             
           in
           
-# 721 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
-# 47207 "parser_cocci_menhir.ml"
+# 47599 "parser_cocci_menhir.ml"
           
         in
         let cv =
@@ -47211,13 +47603,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
 # 41 "standard.mly"
     ( Some x )
-# 47215 "parser_cocci_menhir.ml"
+# 47607 "parser_cocci_menhir.ml"
           
         in
         
-# 742 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
-# 47221 "parser_cocci_menhir.ml"
+# 47613 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47246,24 +47638,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47252 "parser_cocci_menhir.ml"
+# 47644 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_mctype_mctype_ = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47258 "parser_cocci_menhir.ml"
+# 47650 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_typedef_ctype = 
-# 744 "parser_cocci_menhir.mly"
+# 747 "parser_cocci_menhir.mly"
     ( let (mids,code) = t in
       Ast0.wrap
        (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
-# 47267 "parser_cocci_menhir.ml"
+# 47659 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47282,16 +47674,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 47288 "parser_cocci_menhir.ml"
+# 47680 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ctype = 
-# 747 "parser_cocci_menhir.mly"
+# 750 "parser_cocci_menhir.mly"
         ( tmeta_to_type _1 )
-# 47295 "parser_cocci_menhir.ml"
+# 47687 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47313,9 +47705,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 2023 "parser_cocci_menhir.mly"
+# 2059 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.TypeName(P.id2mcode _1)) )
-# 47319 "parser_cocci_menhir.ml"
+# 47711 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47334,16 +47726,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 133 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 47340 "parser_cocci_menhir.ml"
+# 47732 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 2024 "parser_cocci_menhir.mly"
+# 2060 "parser_cocci_menhir.mly"
              ( tmeta_to_type _1 )
-# 47347 "parser_cocci_menhir.ml"
+# 47739 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47362,17 +47754,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 132 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 47368 "parser_cocci_menhir.ml"
+# 47760 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 2026 "parser_cocci_menhir.mly"
+# 2062 "parser_cocci_menhir.mly"
          ( let (nm,pure,clt) = _1 in
         Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 47376 "parser_cocci_menhir.ml"
+# 47768 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47394,9 +47786,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1575 "parser_cocci_menhir.mly"
+# 1611 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 47400 "parser_cocci_menhir.ml"
+# 47792 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47421,16 +47813,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47427 "parser_cocci_menhir.ml"
+# 47819 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1577 "parser_cocci_menhir.mly"
+# 1613 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 47434 "parser_cocci_menhir.ml"
+# 47826 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47455,16 +47847,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47461 "parser_cocci_menhir.ml"
+# 47853 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1579 "parser_cocci_menhir.mly"
+# 1615 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 47468 "parser_cocci_menhir.ml"
+# 47860 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47492,9 +47884,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1581 "parser_cocci_menhir.mly"
+# 1617 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 47498 "parser_cocci_menhir.ml"
+# 47890 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47519,17 +47911,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47525 "parser_cocci_menhir.ml"
+# 47917 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1583 "parser_cocci_menhir.mly"
+# 1619 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 47533 "parser_cocci_menhir.ml"
+# 47925 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47554,16 +47946,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47560 "parser_cocci_menhir.ml"
+# 47952 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 47567 "parser_cocci_menhir.ml"
+# 47959 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47597,29 +47989,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47603 "parser_cocci_menhir.ml"
+# 47995 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47609 "parser_cocci_menhir.ml"
+# 48001 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47614 "parser_cocci_menhir.ml"
+# 48006 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 47623 "parser_cocci_menhir.ml"
+# 48015 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47641,9 +48033,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1575 "parser_cocci_menhir.mly"
+# 1611 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 47647 "parser_cocci_menhir.ml"
+# 48039 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47668,16 +48060,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47674 "parser_cocci_menhir.ml"
+# 48066 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1577 "parser_cocci_menhir.mly"
+# 1613 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 47681 "parser_cocci_menhir.ml"
+# 48073 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47702,16 +48094,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47708 "parser_cocci_menhir.ml"
+# 48100 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1579 "parser_cocci_menhir.mly"
+# 1615 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 47715 "parser_cocci_menhir.ml"
+# 48107 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47739,9 +48131,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1581 "parser_cocci_menhir.mly"
+# 1617 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 47745 "parser_cocci_menhir.ml"
+# 48137 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47766,17 +48158,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47772 "parser_cocci_menhir.ml"
+# 48164 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1583 "parser_cocci_menhir.mly"
+# 1619 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 47780 "parser_cocci_menhir.ml"
+# 48172 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47801,16 +48193,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47807 "parser_cocci_menhir.ml"
+# 48199 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 47814 "parser_cocci_menhir.ml"
+# 48206 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47844,29 +48236,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47850 "parser_cocci_menhir.ml"
+# 48242 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47856 "parser_cocci_menhir.ml"
+# 48248 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47861 "parser_cocci_menhir.ml"
+# 48253 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 47870 "parser_cocci_menhir.ml"
+# 48262 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47888,9 +48280,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1575 "parser_cocci_menhir.mly"
+# 1611 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 47894 "parser_cocci_menhir.ml"
+# 48286 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47915,16 +48307,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47921 "parser_cocci_menhir.ml"
+# 48313 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1577 "parser_cocci_menhir.mly"
+# 1613 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 47928 "parser_cocci_menhir.ml"
+# 48320 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47949,16 +48341,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 47955 "parser_cocci_menhir.ml"
+# 48347 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1579 "parser_cocci_menhir.mly"
+# 1615 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 47962 "parser_cocci_menhir.ml"
+# 48354 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -47986,9 +48378,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1581 "parser_cocci_menhir.mly"
+# 1617 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 47992 "parser_cocci_menhir.ml"
+# 48384 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48013,17 +48405,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48019 "parser_cocci_menhir.ml"
+# 48411 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1583 "parser_cocci_menhir.mly"
+# 1619 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 48027 "parser_cocci_menhir.ml"
+# 48419 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48048,16 +48440,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48054 "parser_cocci_menhir.ml"
+# 48446 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 48061 "parser_cocci_menhir.ml"
+# 48453 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48091,29 +48483,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48097 "parser_cocci_menhir.ml"
+# 48489 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48103 "parser_cocci_menhir.ml"
+# 48495 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48108 "parser_cocci_menhir.ml"
+# 48500 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 48117 "parser_cocci_menhir.ml"
+# 48509 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48135,9 +48527,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1575 "parser_cocci_menhir.mly"
+# 1611 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 48141 "parser_cocci_menhir.ml"
+# 48533 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48162,16 +48554,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48168 "parser_cocci_menhir.ml"
+# 48560 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1577 "parser_cocci_menhir.mly"
+# 1613 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 48175 "parser_cocci_menhir.ml"
+# 48567 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48196,16 +48588,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48202 "parser_cocci_menhir.ml"
+# 48594 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1579 "parser_cocci_menhir.mly"
+# 1615 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 48209 "parser_cocci_menhir.ml"
+# 48601 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48233,9 +48625,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1581 "parser_cocci_menhir.mly"
+# 1617 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 48239 "parser_cocci_menhir.ml"
+# 48631 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48260,17 +48652,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48266 "parser_cocci_menhir.ml"
+# 48658 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1583 "parser_cocci_menhir.mly"
+# 1619 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 48274 "parser_cocci_menhir.ml"
+# 48666 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48295,16 +48687,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48301 "parser_cocci_menhir.ml"
+# 48693 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 48308 "parser_cocci_menhir.ml"
+# 48700 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48338,29 +48730,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48344 "parser_cocci_menhir.ml"
+# 48736 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48350 "parser_cocci_menhir.ml"
+# 48742 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48355 "parser_cocci_menhir.ml"
+# 48747 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 48364 "parser_cocci_menhir.ml"
+# 48756 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48382,9 +48774,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_bis = 
-# 1594 "parser_cocci_menhir.mly"
+# 1630 "parser_cocci_menhir.mly"
                                                           ( _1 )
-# 48388 "parser_cocci_menhir.ml"
+# 48780 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48409,16 +48801,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48415 "parser_cocci_menhir.ml"
+# 48807 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1596 "parser_cocci_menhir.mly"
+# 1632 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 48422 "parser_cocci_menhir.ml"
+# 48814 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48443,16 +48835,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 154 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48449 "parser_cocci_menhir.ml"
+# 48841 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1598 "parser_cocci_menhir.mly"
+# 1634 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 48456 "parser_cocci_menhir.ml"
+# 48848 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48480,9 +48872,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1600 "parser_cocci_menhir.mly"
+# 1636 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 48486 "parser_cocci_menhir.ml"
+# 48878 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48507,17 +48899,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48513 "parser_cocci_menhir.ml"
+# 48905 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1602 "parser_cocci_menhir.mly"
+# 1638 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 48521 "parser_cocci_menhir.ml"
+# 48913 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48542,16 +48934,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48548 "parser_cocci_menhir.ml"
+# 48940 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1605 "parser_cocci_menhir.mly"
+# 1641 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 48555 "parser_cocci_menhir.ml"
+# 48947 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48585,29 +48977,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 146 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48591 "parser_cocci_menhir.ml"
+# 48983 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 145 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48597 "parser_cocci_menhir.ml"
+# 48989 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 124 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48602 "parser_cocci_menhir.ml"
+# 48994 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_bis = 
-# 1607 "parser_cocci_menhir.mly"
+# 1643 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 48611 "parser_cocci_menhir.ml"
+# 49003 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48626,16 +49018,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 162 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48632 "parser_cocci_menhir.ml"
+# 49024 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1611 "parser_cocci_menhir.mly"
+# 1647 "parser_cocci_menhir.mly"
                   ( P.clt2mcode Ast.GetRef _1 )
-# 48639 "parser_cocci_menhir.ml"
+# 49031 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48654,16 +49046,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48660 "parser_cocci_menhir.ml"
+# 49052 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1612 "parser_cocci_menhir.mly"
+# 1648 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.DeRef _1 )
-# 48667 "parser_cocci_menhir.ml"
+# 49059 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48682,16 +49074,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48688 "parser_cocci_menhir.ml"
+# 49080 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1613 "parser_cocci_menhir.mly"
+# 1649 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.UnPlus _1 )
-# 48695 "parser_cocci_menhir.ml"
+# 49087 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48710,16 +49102,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 167 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48716 "parser_cocci_menhir.ml"
+# 49108 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1614 "parser_cocci_menhir.mly"
+# 1650 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.UnMinus _1 )
-# 48723 "parser_cocci_menhir.ml"
+# 49115 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48738,16 +49130,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 168 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
-# 48744 "parser_cocci_menhir.ml"
+# 49136 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1615 "parser_cocci_menhir.mly"
+# 1651 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.Tilde _1 )
-# 48751 "parser_cocci_menhir.ml"
+# 49143 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48775,9 +49167,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_when_start = 
-# 2276 "parser_cocci_menhir.mly"
+# 2312 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.DOTS((Ast0.wrap(Ast0.Exp(_1)))::_2)) )
-# 48781 "parser_cocci_menhir.ml"
+# 49173 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48805,9 +49197,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_when_start = 
-# 2278 "parser_cocci_menhir.mly"
+# 2314 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.DOTS(_1@_2)) )
-# 48811 "parser_cocci_menhir.ml"
+# 49203 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48829,9 +49221,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_w_ in
         let _endpos = _endpos_w_ in
         let _v : 'tv_whenppdecs = 
-# 1153 "parser_cocci_menhir.mly"
+# 1156 "parser_cocci_menhir.mly"
     ( w )
-# 48835 "parser_cocci_menhir.ml"
+# 49227 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48865,9 +49257,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
-# 2323 "parser_cocci_menhir.mly"
+# 2359 "parser_cocci_menhir.mly"
                                          ( [Ast0.WhenNot w] )
-# 48871 "parser_cocci_menhir.ml"
+# 49263 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48901,9 +49293,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
-# 2324 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
                                              ( [Ast0.WhenAlways w] )
-# 48907 "parser_cocci_menhir.ml"
+# 49299 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48933,9 +49325,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
-# 2326 "parser_cocci_menhir.mly"
+# 2362 "parser_cocci_menhir.mly"
       ( List.map (function x -> Ast0.WhenModifier(x)) _2 )
-# 48939 "parser_cocci_menhir.ml"
+# 49331 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -48969,9 +49361,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
-# 2327 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                                         ( [Ast0.WhenNotTrue e] )
-# 48975 "parser_cocci_menhir.ml"
+# 49367 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -49005,9 +49397,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
-# 2328 "parser_cocci_menhir.mly"
+# 2364 "parser_cocci_menhir.mly"
                                          ( [Ast0.WhenNotFalse e] )
-# 49011 "parser_cocci_menhir.ml"
+# 49403 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -49026,16 +49418,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 125 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 49032 "parser_cocci_menhir.ml"
+# 49424 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_wrapped_sym_ident = 
-# 1749 "parser_cocci_menhir.mly"
+# 1785 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.sym2mcode _1)) )
-# 49039 "parser_cocci_menhir.ml"
+# 49431 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -49056,106 +49448,106 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
 
 let rec script_meta_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 2178 lexer lexbuf) : (
-# 230 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 2195 lexer lexbuf) : (
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
-# 49063 "parser_cocci_menhir.ml"
+# 49455 "parser_cocci_menhir.ml"
     ))
 
 and rule_name =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 2101 lexer lexbuf) : (
-# 224 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 2118 lexer lexbuf) : (
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 49071 "parser_cocci_menhir.ml"
+# 49463 "parser_cocci_menhir.ml"
     ))
 
 and reinit =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 2099 lexer lexbuf) : (
-# 202 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 2116 lexer lexbuf) : (
+# 205 "parser_cocci_menhir.mly"
       (unit)
-# 49079 "parser_cocci_menhir.ml"
+# 49471 "parser_cocci_menhir.ml"
     ))
 
 and plus_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 2063 lexer lexbuf) : (
-# 211 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 2080 lexer lexbuf) : (
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 49087 "parser_cocci_menhir.ml"
+# 49479 "parser_cocci_menhir.ml"
     ))
 
 and plus_exp_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 2055 lexer lexbuf) : (
-# 214 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 2072 lexer lexbuf) : (
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 49095 "parser_cocci_menhir.ml"
+# 49487 "parser_cocci_menhir.ml"
     ))
 
 and never_used =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 2049 lexer lexbuf) : (
-# 239 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 2066 lexer lexbuf) : (
+# 242 "parser_cocci_menhir.mly"
       (unit)
-# 49103 "parser_cocci_menhir.ml"
+# 49495 "parser_cocci_menhir.ml"
     ))
 
 and minus_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1964 lexer lexbuf) : (
-# 205 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1981 lexer lexbuf) : (
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 49111 "parser_cocci_menhir.ml"
+# 49503 "parser_cocci_menhir.ml"
     ))
 
 and minus_exp_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1952 lexer lexbuf) : (
-# 208 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1969 lexer lexbuf) : (
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 49119 "parser_cocci_menhir.ml"
+# 49511 "parser_cocci_menhir.ml"
     ))
 
 and meta_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1949 lexer lexbuf) : (
-# 228 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1966 lexer lexbuf) : (
+# 231 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 49127 "parser_cocci_menhir.ml"
+# 49519 "parser_cocci_menhir.ml"
     ))
 
 and iso_rule_name =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1945 lexer lexbuf) : (
-# 220 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1962 lexer lexbuf) : (
+# 223 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 49135 "parser_cocci_menhir.ml"
+# 49527 "parser_cocci_menhir.ml"
     ))
 
 and iso_meta_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1650 lexer lexbuf) : (
-# 236 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1667 lexer lexbuf) : (
+# 239 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 49143 "parser_cocci_menhir.ml"
+# 49535 "parser_cocci_menhir.ml"
     ))
 
 and iso_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 18 lexer lexbuf) : (
-# 233 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 49151 "parser_cocci_menhir.ml"
+# 49543 "parser_cocci_menhir.ml"
     ))
 
 and include_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 0 lexer lexbuf) : (
-# 217 "parser_cocci_menhir.mly"
+# 220 "parser_cocci_menhir.mly"
       (Data.incl_iso list)
-# 49159 "parser_cocci_menhir.ml"
+# 49551 "parser_cocci_menhir.ml"
     ))
 
 
index 0e32475..83e6266 100644 (file)
@@ -72,7 +72,7 @@ type token =
   | TParameter
   | TPOEllipsis of (Data.clt)
   | TPCEllipsis of (Data.clt)
-  | TPArob
+  | TPArob of (Data.clt)
   | TOrLog of (Data.clt)
   | TOr of (Data.clt)
   | TOn
index c8292ea..448662c 100644 (file)
@@ -1,5 +1,7 @@
 /*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -136,7 +138,8 @@ let tmeta_to_ident (name,pure,clt) =
 %token <Parse_aux.typed_expinfo> TMetaExp TMetaIdExp TMetaLocalIdExp TMetaConst
 %token <Parse_aux.pos_info>      TMetaPos
 
-%token TArob TArobArob TPArob
+%token TArob TArobArob
+%token <Data.clt> TPArob
 %token <string> TScriptData
 
 %token <Data.clt> TEllipsis TOEllipsis TCEllipsis TPOEllipsis TPCEllipsis
@@ -1181,6 +1184,15 @@ single_statement:
                     List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code,
                     mids, P.clt2mcode ")" $3)) }
 
+iso_statement: /* statement or declaration used in statement context */
+    statement                         { $1 }
+  | decl_var
+      { match $1 with
+       [decl] ->
+         Ast0.wrap
+           (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),decl))
+      |        _ -> failwith "exactly one decl allowed in statement iso" }
+
 case_line:
     TDefault TDotDot fun_start
       { Ast0.wrap
@@ -1218,8 +1230,8 @@ decl_var:
              P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
            Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
          d }
-  | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol d=d_ident q=TEq
-      e=initialize pv=TPtVirg
+  | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol
+      d=d_ident q=TEq e=initialize pv=TPtVirg
       { let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
@@ -1240,6 +1252,12 @@ decl_var:
   | decl_ident TOPar eexpr_list_option TCPar TPtVirg
       { [Ast0.wrap(Ast0.MacroDecl($1,P.clt2mcode "(" $2,$3,
                                  P.clt2mcode ")" $4,P.clt2mcode ";" $5))] }
+  | decl_ident TOPar eexpr_list_option TCPar q=TEq e=initialize TPtVirg
+      { [Ast0.wrap
+           (Ast0.MacroDeclInit
+              ($1,P.clt2mcode "(" $2,$3,
+               P.clt2mcode ")" $4,P.clt2mcode "=" q,e,
+               P.clt2mcode ";" $7))] }
   | s=ioption(storage)
     t=ctype lp1=TOPar st=TMul d=d_ident rp1=TCPar
     lp2=TOPar p=decl_list(name_opt_decl) rp2=TCPar
@@ -1275,8 +1293,8 @@ one_decl_var:
       { let (id,fn) = d in
         let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
        Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) }
-  | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol d=d_ident q=TEq
-      e=initialize pv=TPtVirg
+  | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol
+      d=d_ident q=TEq e=initialize pv=TPtVirg
       { let (id,fn) = d in
       !Data.add_type_name (P.id2name i);
       let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
@@ -1297,6 +1315,12 @@ one_decl_var:
   | decl_ident TOPar eexpr_list_option TCPar TPtVirg
       { Ast0.wrap(Ast0.MacroDecl($1,P.clt2mcode "(" $2,$3,
                                  P.clt2mcode ")" $4,P.clt2mcode ";" $5)) }
+  | decl_ident TOPar eexpr_list_option TCPar q=TEq e=initialize TPtVirg
+      { Ast0.wrap
+            (Ast0.MacroDeclInit
+               ($1,P.clt2mcode "(" $2,$3,
+                P.clt2mcode ")" $4,P.clt2mcode "=" q,e,
+                P.clt2mcode ";" $7)) }
   | s=ioption(storage)
     t=ctype lp1=TOPar st=TMul d=d_ident rp1=TCPar
     lp2=TOPar p=decl_list(name_opt_decl) rp2=TCPar
@@ -1439,12 +1463,17 @@ by an expression-specific marker.  In that case, the rule eexpr is used, which
 allows <... ...> anywhere.  Hopefully, this will not be too much of a problem
 in practice.
 dot_expressions is the most permissive.  all three kinds of expressions use
-this once an expression_specific token has been seen */
+this once an expression_specific token has been seen
+The arg versions don't allow sequences, to avoid conflicting with commas in
+argument lists.
+ */
 expr:  basic_expr(expr,invalid) { $1 }
 /* allows ... and nests */
-eexpr: basic_expr(eexpr,dot_expressions) { $1 }
+eexpr: pre_basic_expr(eexpr,dot_expressions) { $1 }
+eargexpr: basic_expr(eexpr,dot_expressions) { $1 } /* no sequences */
 /* allows nests but not .... */
-dexpr: basic_expr(eexpr,nest_expressions) { $1 }
+dexpr: pre_basic_expr(eexpr,nest_expressions) { $1 }
+dargexpr: basic_expr(eexpr,nest_expressions) { $1 } /* no sequences */
 
 top_eexpr:
   eexpr { Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp($1)))) }
@@ -1470,6 +1499,12 @@ nest_expressions:
 
 //whenexp: TWhen TNotEq w=eexpr TLineEnd { w }
 
+pre_basic_expr(recurser,primary_extra):
+   basic_expr(recurser,primary_extra)                     { $1 }
+ | pre_basic_expr(recurser,primary_extra) TComma
+     basic_expr(recurser,primary_extra)
+     { Ast0.wrap(Ast0.Sequence($1,P.clt2mcode "," $2,$3)) }
+
 basic_expr(recurser,primary_extra):
    assign_expr(recurser,primary_extra)                     { $1 }
 
@@ -1497,7 +1532,8 @@ assign_expr_bis:
 
 cond_expr(r,pe):
     arith_expr(r,pe)                         { $1 }
-  | l=arith_expr(r,pe) w=TWhy t=option(eexpr) dd=TDotDot r=eexpr/*see parser_c*/
+  | l=arith_expr(r,pe) w=TWhy t=option(eexpr)
+      dd=TDotDot r=eargexpr/*see parser_c*/
       { Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) }
 
@@ -2281,7 +2317,7 @@ when_start:
 
 /* arg expr.  may contain a type or a explist metavariable */
 aexpr:
-    dexpr { Ast0.set_arg_exp $1 }
+    dargexpr { Ast0.set_arg_exp $1 }
   | TMetaExpList
       { let (nm,lenname,pure,clt) = $1 in
       let nm = P.clt2mcode nm clt in
@@ -2349,7 +2385,7 @@ iso_main:
     { let ffn x = Ast0.ExprTag x in
       let fn x =  Ast0.TestExprTag x in
       P.iso_adjust ffn fn e1 el }
-| TIsoStatement s1=single_statement sl=list(iso(single_statement)) EOF
+| TIsoStatement s1=iso_statement sl=list(iso(iso_statement)) EOF
     { let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl }
 | TIsoType t1=ctype tl=list(iso(ctype)) EOF
     { let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl }
index 386c76c..3f00b18 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 01f573b..0d9b4c8 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 7d0ab01..96236b5 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -230,6 +232,9 @@ let rec expression e =
   | Ast.Assignment(left,op,right,simple) ->
       expression left; print_string " "; mcode assignOp op;
       print_string " "; expression right
+  | Ast.Sequence(left,op,right) ->
+      expression left; mcode print_string op;
+      print_string " "; expression right
   | Ast.CondExpr(exp1,why,exp2,colon,exp3) ->
       expression exp1; print_string " "; mcode print_string why;
       print_option (function e -> print_string " "; expression e) exp2;
@@ -271,6 +276,7 @@ let rec expression e =
   | Ast.MetaExpr(name,_,keep,ty,form,inherited) ->
       mcode print_meta name; print_type keep inherited ty
   | Ast.MetaExprList(name,_,_,_) -> mcode print_meta name
+  | Ast.AsExpr(exp,asexp) -> expression exp; print_string "@"; expression asexp
   | Ast.EComma(cm) -> mcode print_string cm; print_space()
   | Ast.DisjExpr(exp_list) -> print_disj_list expression exp_list
   | Ast.NestExpr(starter,expr_dots,ender,Some whencode,multi) ->
@@ -352,9 +358,10 @@ and storage = function
 
 and fullType ft =
   match Ast.unwrap ft with
-    Ast.Type(cv,ty) ->
+    Ast.Type(_,cv,ty) ->
       print_option (function x -> mcode const_vol x; print_string " ") cv;
       typeC ty
+  | Ast.AsType(ty,asty) -> fullType ty; print_string "@"; fullType asty
   | Ast.DisjType(decls) -> print_disj_list fullType decls
   | Ast.OptType(ty) -> print_string "?"; fullType ty
   | Ast.UniqueType(ty) -> print_string "!"; fullType ty
@@ -442,7 +449,7 @@ and const_vol = function
 
 and print_named_type ty id =
   match Ast.unwrap ty with
-    Ast.Type(None,ty1) ->
+    Ast.Type(_,None,ty1) ->
       (match Ast.unwrap ty1 with
        Ast.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) ->
          print_function_pointer (ty,lp1,star,rp1,lp2,params,rp2)
@@ -455,7 +462,10 @@ and print_named_type ty id =
            match Ast.unwrap ty with
              Ast.Array(ty,lb,size,rb) ->
                (match Ast.unwrap ty with
-                 Ast.Type(None,ty) ->
+                 Ast.Type(_,cv,ty) ->
+                   print_option
+                     (function x -> mcode const_vol x; print_string " ")
+                     cv;
                    loop ty
                      (function _ ->
                        k ();
@@ -473,6 +483,8 @@ and declaration d =
     Ast.MetaDecl(name,_,_) | Ast.MetaField(name,_,_)
   | Ast.MetaFieldList(name,_,_,_) ->
       mcode print_meta name
+  | Ast.AsDecl(decl,asdecl) -> declaration decl; print_string "@";
+      declaration asdecl
   | Ast.Init(stg,ty,id,eq,ini,sem) ->
       print_option (mcode storage) stg; print_named_type ty id;
       print_string " "; mcode print_string eq;
@@ -484,6 +496,12 @@ and declaration d =
       ident name; mcode print_string_box lp;
       dots (function _ -> ()) expression args;
       close_box(); mcode print_string rp; mcode print_string sem
+  | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+      ident name; mcode print_string_box lp;
+      dots (function _ -> ()) expression args;
+      close_box(); mcode print_string rp;
+      print_string " "; mcode print_string eq;
+      print_string " "; initialiser ini; mcode print_string sem
   | Ast.TyDecl(ty,sem) -> fullType ty; mcode print_string sem
   | Ast.Typedef(stg,ty,id,sem) ->
       mcode print_string stg; print_string " "; fullType ty; typeC id;
@@ -504,6 +522,8 @@ and initialiser i =
       mcode print_meta name; print_string " "
   | Ast.MetaInitList(name,_,_,_) ->
       mcode print_meta name; print_string " "
+  | Ast.AsInit(ini,asini) -> initialiser ini; print_string "@";
+      initialiser asini
   | Ast.InitExpr(exp) -> expression exp
   | Ast.ArInitList(lb,initlist,rb) ->
       mcode print_string lb; open_box 0;
@@ -723,6 +743,8 @@ and statement arity s =
   | Ast.Define(header,body) ->
       rule_elem arity header; print_string " ";
       dots force_newline (statement arity) body
+  | Ast.AsStmt(stm,asstm) ->
+      statement arity stm; print_string "@"; statement arity asstm
   | Ast.Nest(starter,stmt_dots,ender,whn,multi,_,_) ->
       print_string arity;
       nest_dots starter ender (statement arity)
index 75986c3..b178fab 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 572d14e..75fb027 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index faf9276..aed1c17 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index b8a9ccb..165008a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 08df9d9..54d355e 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5a45d93..06cacf9 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 614af55..cc0d180 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -142,6 +144,7 @@ let rec left_expression e =
   | Ast0.Constant(const) -> modif_before_mcode const
   | Ast0.FunCall(fn,lp,args,rp) -> left_expression fn
   | Ast0.Assignment(left,op,right,_) -> left_expression left
+  | Ast0.Sequence(left,op,right) -> left_expression left
   | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> left_expression exp1
   | Ast0.Postfix(exp,op) -> left_expression exp
   | Ast0.Infix(exp,op) -> modif_before_mcode op
@@ -167,6 +170,7 @@ let rec left_expression e =
   | Ast0.Edots(dots,_) | Ast0.Ecircles(dots,_) | Ast0.Estars(dots,_) -> false
   | Ast0.OptExp(exp) -> left_expression exp
   | Ast0.UniqueExp(exp) -> left_expression exp
+  | Ast0.AsExpr _ -> failwith "not possible"
 
 (* --------------------------------------------------------------------- *)
 (* Types *)
@@ -191,6 +195,8 @@ and left_typeC t =
   | Ast0.DisjType(lp,types,mids,rp) -> List.exists left_typeC types
   | Ast0.OptType(ty) -> left_typeC ty
   | Ast0.UniqueType(ty) -> left_typeC ty
+  | Ast0.AsType _ -> failwith "not possible"
+
 
 (* --------------------------------------------------------------------- *)
 (* Variable declaration *)
@@ -208,12 +214,14 @@ and left_declaration d =
   | Ast0.UnInit(Some stg,ty,id,sem) -> modif_before_mcode stg
   | Ast0.UnInit(None,ty,id,sem) -> left_typeC ty
   | Ast0.MacroDecl(name,lp,args,rp,sem) -> left_ident name
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> left_ident name
   | Ast0.TyDecl(ty,sem) -> left_typeC ty
   | Ast0.Typedef(stg,ty,id,sem) -> modif_before_mcode stg
   | Ast0.DisjDecl(_,decls,_,_) -> List.exists left_declaration decls
   | Ast0.Ddots(dots,_) -> false
   | Ast0.OptDecl(decl) -> left_declaration decl
   | Ast0.UniqueDecl(decl) -> left_declaration decl
+  | Ast0.AsDecl _ -> failwith "not possible"
 
 and right_declaration d =
   modif_before d or
@@ -224,12 +232,14 @@ and right_declaration d =
   | Ast0.Init(_,ty,id,eq,ini,sem) -> modif_after_mcode sem
   | Ast0.UnInit(_,ty,id,sem) -> modif_after_mcode sem
   | Ast0.MacroDecl(name,lp,args,rp,sem) -> modif_after_mcode sem
+  | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> modif_after_mcode sem
   | Ast0.TyDecl(ty,sem) -> modif_after_mcode sem
   | Ast0.Typedef(stg,ty,id,sem) -> modif_after_mcode sem
   | Ast0.DisjDecl(_,decls,_,_) -> List.exists right_declaration decls
   | Ast0.Ddots(dots,_) -> false
   | Ast0.OptDecl(decl) -> right_declaration decl
   | Ast0.UniqueDecl(decl) -> right_declaration decl
+  | Ast0.AsDecl _ -> failwith "not possible"
 
 (* --------------------------------------------------------------------- *)
 (* Top-level code *)
@@ -275,6 +285,7 @@ and left_statement s =
   | Ast0.Define(def,id,params,body) -> modif_before_mcode def
   | Ast0.OptStm(re) -> left_statement re
   | Ast0.UniqueStm(re) -> left_statement re
+  | Ast0.AsStmt _ -> failwith "not possible"
 
 and right_statement s =
   modif_after s or
@@ -316,6 +327,7 @@ and right_statement s =
   | Ast0.Define(def,id,params,body) -> right_dots right_statement body
   | Ast0.OptStm(re) -> right_statement re
   | Ast0.UniqueStm(re) -> right_statement re
+  | Ast0.AsStmt _ -> failwith "not possible"
 
 (* --------------------------------------------------------------------- *)
 
@@ -624,6 +636,7 @@ let rec statement dots_before dots_after s =
   | Ast0.UniqueStm(re) ->
       Ast0.rewrap s
        (Ast0.UniqueStm(statement dots_before dots_after re))
+  | Ast0.AsStmt _ -> failwith "not possible"
 
 and case_line c =
   Ast0.rewrap c
index 6b43ffc..49f0851 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 8dc1a95..d1831f4 100644 (file)
@@ -1,4 +1,6 @@
-// Copyright 2010, INRIA, University of Copenhagen
+// Copyright 2012, INRIA
+// Julia Lawall, Gilles Muller
+// Copyright 2010-2011, INRIA, University of Copenhagen
 // Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 // Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 // Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 2c4e050..c5d7172 100644 (file)
@@ -1,4 +1,6 @@
-// Copyright 2010, INRIA, University of Copenhagen
+// Copyright 2012, INRIA
+// Julia Lawall, Gilles Muller
+// Copyright 2010-2011, INRIA, University of Copenhagen
 // Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 // Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 // Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index b4843b2..83d01ca 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 35f1d00..59cbbfa 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index a9e7a2a..aff803c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index da2f172..bec8c57 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index ead32f6..b628e71 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 0ad1da9..197589a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5d5f68b..292b580 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -165,6 +167,7 @@ let rec propagate_types env =
        | Ast0.Assignment(exp1,op,exp2,_) ->
            let ty = lub_type (Ast0.get_type exp1) (Ast0.get_type exp2) in
              Ast0.set_type exp1 ty; Ast0.set_type exp2 ty; ty
+       | Ast0.Sequence(exp1,op,exp2) -> Ast0.get_type exp2
        | Ast0.CondExpr(exp1,why,Some exp2,colon,exp3) ->
            let ty = lub_type (Ast0.get_type exp2) (Ast0.get_type exp3) in
              Ast0.set_type exp2 ty; Ast0.set_type exp3 ty; ty
@@ -279,7 +282,8 @@ let rec propagate_types env =
        | Ast0.Estars(_,Some e) ->
            let _ = r.VT0.combiner_rec_expression e in None
        | Ast0.OptExp(exp) -> Ast0.get_type exp
-       | Ast0.UniqueExp(exp) -> Ast0.get_type exp in
+       | Ast0.UniqueExp(exp) -> Ast0.get_type exp
+       | Ast0.AsExpr _ -> failwith "not possible" in
       Ast0.set_type e ty;
       ty in
 
@@ -333,14 +337,16 @@ let rec propagate_types env =
       Ast0.MetaDecl(_,_) | Ast0.MetaField(_,_)
     | Ast0.MetaFieldList(_,_,_) -> []
     | Ast0.Init(_,ty,id,_,exp,_) ->
-       let _ =
-         (propagate_types env).VT0.combiner_rec_initialiser exp in
+       let _ = (propagate_types env).VT0.combiner_rec_initialiser exp in
        let ty = Ast0.ast0_type_to_type ty in
        List.map (function i -> (i,ty)) (strip id)
     | Ast0.UnInit(_,ty,id,_) ->
        let ty = Ast0.ast0_type_to_type ty in
        List.map (function i -> (i,ty)) (strip id)
     | Ast0.MacroDecl(_,_,_,_,_) -> []
+    | Ast0.MacroDeclInit(_,_,_,_,_,exp,_) ->
+        let _ = (propagate_types env).VT0.combiner_rec_initialiser exp in
+       []
     | Ast0.TyDecl(ty,_) -> []
               (* pad: should handle typedef one day and add a binding *)
     | Ast0.Typedef(_,_,_,_) -> []
@@ -348,7 +354,8 @@ let rec propagate_types env =
        List.concat(List.map (process_decl env) disjs)
     | Ast0.Ddots(_,_) -> [] (* not in a statement list anyway *)
     | Ast0.OptDecl(decl) -> process_decl env decl
-    | Ast0.UniqueDecl(decl) -> process_decl env decl in
+    | Ast0.UniqueDecl(decl) -> process_decl env decl
+    | Ast0.AsDecl _ -> failwith "not possible" in
 
   let statement_dots r k d =
     match Ast0.unwrap d with
index 893e983..06d47b0 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 413b4eb..f094b70 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -156,6 +158,8 @@ and unify_expression e1 e2 =
       if unify_mcode op1 op2
       then conjunct_bindings (unify_expression l1 l2) (unify_expression r1 r2)
       else return false
+  | (Ast.Sequence(l1,_,r1),Ast.Sequence(l2,_,r2)) ->
+      conjunct_bindings (unify_expression l1 l2) (unify_expression r1 r2)
   | (Ast.CondExpr(tst1,q1,thn1,c1,els1),Ast.CondExpr(tst2,q2,thn2,c2,els2)) ->
       conjunct_bindings (unify_expression tst1 tst2)
        (conjunct_bindings (unify_option unify_expression thn1 thn2)
@@ -195,6 +199,13 @@ and unify_expression e1 e2 =
   | (_,Ast.MetaExpr(_,_,_,_,_,_))
   | (_,Ast.MetaExprList(_,_,_,_)) -> return true
 
+  | (Ast.AsExpr(exp1,asexp1),_) ->
+      disjunct_all_bindings
+       (List.map (function x -> unify_expression x e2) [exp1;asexp1])
+  | (_,Ast.AsExpr(exp2,asexp2)) ->
+      disjunct_all_bindings
+       (List.map (function x -> unify_expression x e1) [exp2;asexp2])
+
   | (Ast.EComma(cm1),Ast.EComma(cm2)) -> return true
 
   | (Ast.DisjExpr(e1),_) ->
@@ -220,10 +231,16 @@ and unify_expression e1 e2 =
 
 and unify_fullType ft1 ft2 =
   match (Ast.unwrap ft1,Ast.unwrap ft2) with
-    (Ast.Type(cv1,ty1),Ast.Type(cv2,ty2)) ->
+    (Ast.Type(_,cv1,ty1),Ast.Type(_,cv2,ty2)) ->
       if bool_unify_option unify_mcode cv1 cv2
       then unify_typeC ty1 ty2
       else return false
+  | (Ast.AsType(ty1,asty1),_) ->
+      disjunct_all_bindings
+       (List.map (function x -> unify_fullType x ft2) [ty1;asty1])
+  | (_,Ast.AsType(ty2,asty2)) ->
+      disjunct_all_bindings
+       (List.map (function x -> unify_fullType x ft1) [ty2;asty2])
   | (Ast.DisjType(ft1),_) ->
       disjunct_all_bindings (List.map (function x -> unify_fullType x ft2) ft1)
   | (_,Ast.DisjType(ft2)) ->
@@ -312,6 +329,11 @@ and unify_declaration d1 d2 =
      Ast.MacroDecl(n2,lp2,args2,rp2,sem2)) ->
        conjunct_bindings (unify_ident n1 n2)
         (unify_dots unify_expression edots args1 args2)
+  | (Ast.MacroDeclInit(n1,lp1,args1,rp1,eq1,ini1,sem1),
+     Ast.MacroDeclInit(n2,lp2,args2,rp2,eq2,ini2,sem2)) ->
+       conjunct_bindings (unify_ident n1 n2)
+        (conjunct_bindings (unify_dots unify_expression edots args1 args2)
+           (unify_initialiser ini1 ini2))
   | (Ast.TyDecl(ft1,s1),Ast.TyDecl(ft2,s2)) -> unify_fullType ft1 ft2
   | (Ast.Typedef(stg1,ft1,id1,s1),Ast.Typedef(stg2,ft2,id2,s2)) ->
       conjunct_bindings (unify_fullType ft1 ft2) (unify_typeC id1 id2)
index 87b6f46..534f7f9 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index c01fab6..9746e86 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 2361df1..334df3e 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 4e108b5..4ac55e1 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -43,13 +45,14 @@ let print_between = Common.print_between
 (* --------------------------------------------------------------------- *)
 (* Positions *)
 
-let meta_pos l =
+let rec meta_pos l =
   List.iter
-    (function
-       Ast0.MetaPos(name,_,_) ->
-         print_string "@";
-         let (_,name) = Ast0.unwrap_mcode name in
-         print_string name)
+    (function var ->
+      let current_name = Ast0.meta_pos_name var in
+      let (_,name) = Ast0.unwrap_mcode current_name in
+      print_string "@";
+      print_string name;
+      meta_pos (Ast0.get_pos current_name))
     l
 
 (* --------------------------------------------------------------------- *)
@@ -181,6 +184,9 @@ let rec expression e =
       | Ast0.Assignment(left,op,right,_) ->
          expression left; print_string " "; mcode U.assignOp op;
          print_string " "; expression right
+      | Ast0.Sequence(left,op,right) ->
+         expression left; mcode print_string op;
+         print_string " "; expression right
       | Ast0.CondExpr(exp1,why,exp2,colon,exp3) ->
          expression exp1; print_string " "; mcode print_string why;
          print_option (function e -> print_string " "; expression e) exp2;
@@ -251,7 +257,9 @@ let rec expression e =
       | Ast0.Ecircles(dots,None)
       | Ast0.Estars(dots,None) -> mcode print_string dots
       | Ast0.OptExp(exp) -> print_string "?"; expression exp
-      | Ast0.UniqueExp(exp) -> print_string "!"; expression exp)
+      | Ast0.UniqueExp(exp) -> print_string "!"; expression exp
+      |        Ast0.AsExpr(exp,asexp) -> expression exp; print_string "@";
+         expression asexp)
 
 and expression_dots x = dots (function _ -> ()) expression x
 
@@ -304,7 +312,8 @@ and typeC t =
       | Ast0.MetaType(name,_)-> mcode print_meta name; print_string " "
       | Ast0.DisjType(_,types,_,_) -> do_disj types typeC
       | Ast0.OptType(ty) -> print_string "?"; typeC ty
-      | Ast0.UniqueType(ty) -> print_string "!"; typeC ty)
+      | Ast0.UniqueType(ty) -> print_string "!"; typeC ty
+      | Ast0.AsType(ty,asty) -> typeC ty; print_string "@"; typeC asty)
 
 (* --------------------------------------------------------------------- *)
 (* Variable declaration *)
@@ -353,6 +362,13 @@ and declaration d =
          ident name; mcode print_string_box lp;
          let _ = dots (function _ -> ()) expression args in
          close_box(); mcode print_string rp; mcode print_string sem
+      | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+         ident name; mcode print_string_box lp;
+         let _ = dots (function _ -> ()) expression args in
+         close_box(); mcode print_string rp;
+          print_string " ";
+          mcode print_string eq; print_string " "; initialiser ini;
+         mcode print_string sem
       | Ast0.TyDecl(ty,sem) -> typeC ty; mcode print_string sem
       | Ast0.Typedef(stg,ty,id,sem) ->
          mcode print_string stg; typeC ty; typeC id;
@@ -368,7 +384,9 @@ and declaration d =
          declaration whencode
       | Ast0.Ddots(dots,None) -> mcode print_string dots
       | Ast0.OptDecl(decl) -> print_string "?"; declaration decl
-      | Ast0.UniqueDecl(decl) -> print_string "!"; declaration decl)
+      | Ast0.UniqueDecl(decl) -> print_string "!"; declaration decl
+      | Ast0.AsDecl(decl,asdecl) ->
+         declaration decl; print_string "@"; declaration asdecl)
 
 and declaration_dots l = dots (function _ -> ()) declaration l
 
@@ -398,7 +416,9 @@ and initialiser i =
          initialiser whencode
       | Ast0.Idots(d,None) -> mcode print_string d
       | Ast0.OptIni(ini) -> print_string "?"; initialiser ini
-      | Ast0.UniqueIni(ini) -> print_string "!"; initialiser ini)
+      | Ast0.UniqueIni(ini) -> print_string "!"; initialiser ini
+      | Ast0.AsInit(ini,asini) -> initialiser ini; print_string "@";
+         initialiser asini)
 
 and designator = function
       Ast0.DesignatorField(dot,id) -> mcode print_string dot; ident id
@@ -446,7 +466,12 @@ and statement arity s =
          print_string arity; mcode print_string lbrace; start_block();
          dots force_newline (statement arity) body;
          end_block(); print_string arity; mcode print_string rbrace
-      | Ast0.Decl(_,decl) -> print_string arity; declaration decl
+      | Ast0.Decl(_,decl) ->
+         Printf.printf "statement mcodekind %s\n"
+           (Dumper.dump (Ast0.get_mcodekind s));
+         Printf.printf "decl mcodekind %s\n"
+           (Dumper.dump (Ast0.get_mcodekind decl));
+         print_string arity; declaration decl
       | Ast0.Seq(lbrace,body,rbrace) ->
          print_string arity; mcode print_string lbrace; start_block();
          dots force_newline (statement arity) body;
@@ -565,7 +590,9 @@ and statement arity s =
          print_string " ";
          dots force_newline (statement arity) body
       | Ast0.OptStm(re) -> statement "?" re
-      | Ast0.UniqueStm(re) -> statement "!" re)
+      | Ast0.UniqueStm(re) -> statement "!" re
+      | Ast0.AsStmt(stm,asstm) -> statement arity stm; print_string "@";
+         statement arity asstm)
 
 and print_define_parameters params =
   match Ast0.unwrap params with
@@ -679,7 +706,8 @@ let unparse_anything x =
   | Ast0.IsoWhenTag(x)   -> U.print_when_modif x
   | Ast0.IsoWhenTTag(e)  -> expression e
   | Ast0.IsoWhenFTag(e)  -> expression e
-  | Ast0.MetaPosTag(var) -> meta_pos [var]);
+  | Ast0.MetaPosTag(var) -> meta_pos [x]
+  | Ast0.HiddenVarTag(var) -> failwith "should not need to be printed");
   quiet := q;
   print_newline()
 
index 3818b77..9ee2bdb 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5fa4307..425d477 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -122,6 +124,8 @@ let combiner bind option_default
                      string_mcode rp]
       | Ast.Assignment(left,op,right,simple) ->
          multibind [expression left; assign_mcode op; expression right]
+      | Ast.Sequence(left,op,right) ->
+         multibind [expression left; string_mcode op; expression right]
       | Ast.CondExpr(exp1,why,exp2,colon,exp3) ->
          multibind [expression exp1; string_mcode why;
                      get_option expression exp2; string_mcode colon;
@@ -158,6 +162,7 @@ let combiner bind option_default
       | Ast.MetaErr(name,_,_,_)
       | Ast.MetaExpr(name,_,_,_,_,_)
       | Ast.MetaExprList(name,_,_,_) -> meta_mcode name
+      |        Ast.AsExpr(exp,asexp) -> bind (expression exp) (expression asexp)
       | Ast.EComma(cm) -> string_mcode cm
       | Ast.DisjExpr(exp_list) -> multibind (List.map expression exp_list)
       | Ast.NestExpr(starter,expr_dots,ender,whencode,multi) ->
@@ -175,7 +180,8 @@ let combiner bind option_default
   and fullType ft =
     let k ft =
       match Ast.unwrap ft with
-       Ast.Type(cv,ty) -> bind (get_option cv_mcode cv) (typeC ty)
+       Ast.Type(_,cv,ty) -> bind (get_option cv_mcode cv) (typeC ty)
+      |        Ast.AsType(ty,asty) -> bind (fullType ty) (fullType asty)
       | Ast.DisjType(types) -> multibind (List.map fullType types)
       | Ast.OptType(ty) -> fullType ty
       | Ast.UniqueType(ty) -> fullType ty in
@@ -229,7 +235,7 @@ let combiner bind option_default
 
   and named_type ty id =
     match Ast.unwrap ty with
-      Ast.Type(None,ty1) ->
+      Ast.Type(_,None,ty1) ->
        (match Ast.unwrap ty1 with
          Ast.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) ->
            function_pointer (ty,lp1,star,rp1,lp2,params,rp2) [ident id]
@@ -245,6 +251,8 @@ let combiner bind option_default
        Ast.MetaDecl(name,_,_) | Ast.MetaField(name,_,_)
       |        Ast.MetaFieldList(name,_,_,_) ->
          meta_mcode name
+      |        Ast.AsDecl(decl,asdecl) ->
+         bind (declaration decl) (declaration asdecl)
       |        Ast.Init(stg,ty,id,eq,ini,sem) ->
          bind (get_option storage_mcode stg)
            (bind (named_type ty id)
@@ -257,6 +265,11 @@ let combiner bind option_default
          multibind
            [ident name; string_mcode lp; expression_dots args;
              string_mcode rp; string_mcode sem]
+      | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+         multibind
+           [ident name; string_mcode lp; expression_dots args;
+             string_mcode rp; string_mcode eq; initialiser ini;
+             string_mcode sem]
       | Ast.TyDecl(ty,sem) -> bind (fullType ty) (string_mcode sem)
       | Ast.Typedef(stg,ty,id,sem) ->
          bind (string_mcode stg)
@@ -273,6 +286,8 @@ let combiner bind option_default
       match Ast.unwrap i with
        Ast.MetaInit(name,_,_) -> meta_mcode name
       |        Ast.MetaInitList(name,_,_,_) -> meta_mcode name
+      |        Ast.AsInit(init,asinit) ->
+         bind (initialiser init) (initialiser asinit)
       |        Ast.InitExpr(exp) -> expression exp
       | Ast.ArInitList(lb,initlist,rb) ->
          multibind
@@ -455,6 +470,8 @@ let combiner bind option_default
                      statement_dots body; rule_elem rbrace]
       | Ast.Define(header,body) ->
          bind (rule_elem header) (statement_dots body)
+      |        Ast.AsStmt(stm,asstm) ->
+         bind (statement stm) (statement asstm)
       | Ast.Dots(d,whn,_,_) | Ast.Circles(d,whn,_,_) | Ast.Stars(d,whn,_,_) ->
          bind (string_mcode d)
            (multibind (List.map (whencode statement_dots statement) whn))
@@ -634,6 +651,8 @@ let rebuilder
        | Ast.Assignment(left,op,right,simple) ->
            Ast.Assignment(expression left, assign_mcode op, expression right,
                           simple)
+       | Ast.Sequence(left,op,right) ->
+           Ast.Sequence(expression left, string_mcode op, expression right)
        | Ast.CondExpr(exp1,why,exp2,colon,exp3) ->
            Ast.CondExpr(expression exp1, string_mcode why,
                         get_option expression exp2, string_mcode colon,
@@ -672,6 +691,7 @@ let rebuilder
            Ast.MetaExpr(meta_mcode name,constraints,keep,ty,form,inherited)
        | Ast.MetaExprList(name,lenname_inh,keep,inherited) ->
            Ast.MetaExprList(meta_mcode name,lenname_inh,keep,inherited)
+       | Ast.AsExpr(exp,asexp) -> Ast.AsExpr(expression exp,expression asexp)
        | Ast.EComma(cm) -> Ast.EComma(string_mcode cm)
        | Ast.DisjExpr(exp_list) -> Ast.DisjExpr(List.map expression exp_list)
        | Ast.NestExpr(starter,expr_dots,ender,whencode,multi) ->
@@ -692,7 +712,9 @@ let rebuilder
     let k ft =
       Ast.rewrap ft
        (match Ast.unwrap ft with
-         Ast.Type(cv,ty) -> Ast.Type (get_option cv_mcode cv, typeC ty)
+         Ast.Type(allminus,cv,ty) ->
+           Ast.Type (allminus,get_option cv_mcode cv, typeC ty)
+       | Ast.AsType(ty,asty) -> Ast.AsType(fullType ty,fullType asty)
        | Ast.DisjType(types) -> Ast.DisjType(List.map fullType types)
        | Ast.OptType(ty) -> Ast.OptType(fullType ty)
        | Ast.UniqueType(ty) -> Ast.UniqueType(fullType ty)) in
@@ -745,6 +767,8 @@ let rebuilder
            Ast.MetaField(meta_mcode name,keep,inherited)
        | Ast.MetaFieldList(name,lenname_inh,keep,inherited) ->
            Ast.MetaFieldList(meta_mcode name,lenname_inh,keep,inherited)
+       | Ast.AsDecl(decl,asdecl) ->
+           Ast.AsDecl(declaration decl,declaration asdecl)
        | Ast.Init(stg,ty,id,eq,ini,sem) ->
            Ast.Init(get_option storage_mcode stg, fullType ty, ident id,
                     string_mcode eq, initialiser ini, string_mcode sem)
@@ -754,6 +778,11 @@ let rebuilder
        | Ast.MacroDecl(name,lp,args,rp,sem) ->
            Ast.MacroDecl(ident name, string_mcode lp, expression_dots args,
                          string_mcode rp,string_mcode sem)
+       | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+           Ast.MacroDeclInit
+             (ident name, string_mcode lp, expression_dots args,
+              string_mcode rp,string_mcode eq,initialiser ini,
+              string_mcode sem)
        | Ast.TyDecl(ty,sem) -> Ast.TyDecl(fullType ty, string_mcode sem)
        | Ast.Typedef(stg,ty,id,sem) ->
            Ast.Typedef(string_mcode stg, fullType ty, typeC id,
@@ -773,6 +802,8 @@ let rebuilder
            Ast.MetaInit(meta_mcode name,keep,inherited)
        | Ast.MetaInitList(name,lenname_inh,keep,inherited) ->
            Ast.MetaInitList(meta_mcode name,lenname_inh,keep,inherited)
+       | Ast.AsInit(ini,asini) ->
+           Ast.AsInit(initialiser ini,initialiser asini)
        | Ast.InitExpr(exp) -> Ast.InitExpr(expression exp)
        | Ast.ArInitList(lb,initlist,rb) ->
            Ast.ArInitList(string_mcode lb, initialiser_dots initlist,
@@ -970,6 +1001,7 @@ let rebuilder
                        statement_dots body, rule_elem rbrace)
        | Ast.Define(header,body) ->
            Ast.Define(rule_elem header,statement_dots body)
+       | Ast.AsStmt(stm,asstm) -> Ast.AsStmt(statement stm,statement asstm)
        | Ast.Dots(d,whn,bef,aft) ->
            Ast.Dots(string_mcode d,
                     List.map (whencode statement_dots statement) whn,bef,aft)
index 8c44fc1..c9fd195 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 91066d6..f50e7c8 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -180,6 +182,12 @@ let visitor mode bind option_default
            let (right_n,right) = expression right in
            (multibind [left_n;op_n;right_n],
             Ast0.Assignment(left,op,right,simple))
+       | Ast0.Sequence(left,op,right) ->
+           let (left_n,left) = expression left in
+           let (op_n,op) = string_mcode op in
+           let (right_n,right) = expression right in
+           (multibind [left_n;op_n;right_n],
+            Ast0.Sequence(left,op,right))
        | Ast0.CondExpr(exp1,why,exp2,colon,exp3) ->
            let (exp1_n,exp1) = expression exp1 in
            let (why_n,why) = string_mcode why in
@@ -296,7 +304,11 @@ let visitor mode bind option_default
            (exp_n,Ast0.OptExp(exp))
        | Ast0.UniqueExp(exp) ->
            let (exp_n,exp) = expression exp in
-           (exp_n,Ast0.UniqueExp(exp))) in
+           (exp_n,Ast0.UniqueExp(exp))
+       | Ast0.AsExpr(exp,asexp) ->
+           let (exp_n,exp) = expression exp in
+           let (asexp_n,asexp) = expression asexp in
+           (bind exp_n asexp_n, Ast0.AsExpr(exp,asexp))) in
     exprfn all_functions k e
   and typeC t =
     let k t =
@@ -356,7 +368,11 @@ let visitor mode bind option_default
        | Ast0.OptType(ty) ->
            let (ty_n,ty) = typeC ty in (ty_n, Ast0.OptType(ty))
        | Ast0.UniqueType(ty) ->
-           let (ty_n,ty) = typeC ty in (ty_n, Ast0.UniqueType(ty))) in
+           let (ty_n,ty) = typeC ty in (ty_n, Ast0.UniqueType(ty))
+       | Ast0.AsType(ty,asty) ->
+           let (ty_n,ty) = typeC ty in
+           let (asty_n,asty) = typeC asty in
+           (bind ty_n asty_n, Ast0.AsType(ty,asty))) in
     tyfn all_functions k t
 
   and function_pointer (ty,lp1,star,rp1,lp2,params,rp2) extra =
@@ -435,6 +451,16 @@ let visitor mode bind option_default
            let (sem_n,sem) = string_mcode sem in
            (multibind [name_n;lp_n;args_n;rp_n;sem_n],
             Ast0.MacroDecl(name,lp,args,rp,sem))
+       | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) ->
+           let (name_n,name) = ident name in
+           let (lp_n,lp) = string_mcode lp in
+           let (args_n,args) = expression_dots args in
+           let (rp_n,rp) = string_mcode rp in
+           let (eq_n,eq) = string_mcode eq in
+           let (ini_n,ini) = initialiser ini in
+           let (sem_n,sem) = string_mcode sem in
+           (multibind [name_n;lp_n;args_n;rp_n;eq_n;ini_n;sem_n],
+            Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem))
        | Ast0.TyDecl(ty,sem) ->
            let (ty_n,ty) = typeC ty in
            let (sem_n,sem) = string_mcode sem in
@@ -456,7 +482,11 @@ let visitor mode bind option_default
        | Ast0.OptDecl(decl) ->
            let (n,decl) = declaration decl in (n,Ast0.OptDecl(decl))
        | Ast0.UniqueDecl(decl) ->
-           let (n,decl) = declaration decl in (n,Ast0.UniqueDecl(decl))) in
+           let (n,decl) = declaration decl in (n,Ast0.UniqueDecl(decl))
+       | Ast0.AsDecl(decl,asdecl) ->
+           let (decl_n,decl) = declaration decl in
+           let (asdecl_n,asdecl) = declaration asdecl in
+           (bind decl_n asdecl_n, Ast0.AsDecl(decl,asdecl))) in
     declfn all_functions k d
 
   and initialiser i =
@@ -497,7 +527,11 @@ let visitor mode bind option_default
        | Ast0.OptIni(i) ->
            let (n,i) = initialiser i in (n,Ast0.OptIni(i))
        | Ast0.UniqueIni(i) ->
-           let (n,i) = initialiser i in (n,Ast0.UniqueIni(i))) in
+           let (n,i) = initialiser i in (n,Ast0.UniqueIni(i))
+       | Ast0.AsInit(ini,asini) ->
+           let (ini_n,ini) = initialiser ini in
+           let (asini_n,asini) = initialiser asini in
+           (bind ini_n asini_n, Ast0.AsInit(ini,asini))) in
     initfn all_functions k i
 
   and designator = function
@@ -749,7 +783,11 @@ let visitor mode bind option_default
        | Ast0.OptStm(re) ->
            let (re_n,re) = statement re in (re_n,Ast0.OptStm(re))
        | Ast0.UniqueStm(re) ->
-           let (re_n,re) = statement re in (re_n,Ast0.UniqueStm(re))) in
+           let (re_n,re) = statement re in (re_n,Ast0.UniqueStm(re))
+       | Ast0.AsStmt(stm,asstm) ->
+           let (stm_n,stm) = statement stm in
+           let (asstm_n,asstm) = statement asstm in
+           (bind stm_n asstm_n, Ast0.AsStmt(stm,asstm))) in
     let (n,s) = stmtfn all_functions k s in
     (n,if mode = REBUILDER then process_bef_aft s else s)
 
@@ -920,7 +958,8 @@ let visitor mode bind option_default
       | Ast0.IsoWhenFTag(e) ->
          let (e_n,e) = expression e in
          (e_n,Ast0.IsoWhenFTag(e))
-      |        Ast0.MetaPosTag(var) -> failwith "not supported" in
+      |        Ast0.MetaPosTag(var) -> failwith "not supported"
+      |        Ast0.HiddenVarTag(var) -> failwith "not supported" in
     k a
 
   (* not done for combiner, because the statement is assumed to be already
index 43590fa..0117374 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 98c284a..4552c1d 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 9302461..e3d9650 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index abb6b03..1b3ec5c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5fbf9f8..49b0f00 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 37e4b82..8db0851 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index ad6caad..4723621 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 4aaf5af..ba0eeeb 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 3a0980e..f9c7d70 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 0276dba..954760b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index c32ae10..f2a814c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 7716982..b408f4f 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 7bb9787..ea0dd37 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index a65c5ca..bf73a67 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 0515ad7..61bb843 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index d4ae105..f36b513 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index db143ea..50c7800 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index e153487..4aaf236 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 530560d..e49072c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 37e4b82..8db0851 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index c509121..c5c1324 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index ce86d0c..80c2ec6 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 0276dba..954760b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 76c4a57..fd57654 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 7716982..b408f4f 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 6fe9963..77c2897 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index a65c5ca..bf73a67 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index e76b8fc..42b0a81 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index d4ae105..f36b513 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 2c3459a..90fa83a 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -30,7 +32,7 @@
 ##############################################################################
 TARGET=coccipython
 
-SOURCES= pycocci_aux.ml pycocci.ml
+SOURCES= pycocci_aux.ml $(PYCOCCI_FILE) pycocci.ml
 
 INCLUDEDIRS_LOCAL = ../commons ../commons/ocamlextra ../globals \
                    ../parsing_c ../parsing_cocci
index 0e794c9..2c0429a 100644 (file)
@@ -1,5 +1,5 @@
 class Location:
      def __init__(self, file, current_element, line, column, line_end, column_end):
+ def __init__(self, file, current_element, line, column, line_end, column_end):
                self.file = file
                self.current_element = current_element
                self.line = line
@@ -11,19 +11,30 @@ class ElemBase:
        def __init__(self):
                pass
 
+# class Expression(ElemBase):
+#      def __init__(self, expr):
+#              ElemBase.__init__(self)
+#              self.expr = expr
+#
+#      def __str__(self):
+#              return self.expr
 
-class Expression(ElemBase):
-       def __init__(self, expr):
+class TermList(ElemBase):
+       def __init__(self, expr, elements):
                ElemBase.__init__(self)
                self.expr = expr
+               self.elements = elements
+
+       def __getitem__(self,n):
+               return self.elements[n]
 
        def __str__(self):
                return self.expr
 
-class Identifier(ElemBase):
-       def __init__(self, ident):
-               ElemBase.__init__(self)
-               self.ident = ident
-
-       def __str__(self):
-               return self.ident
+class Identifier(ElemBase):
+#      def __init__(self, ident):
+#              ElemBase.__init__(self)
+#              self.ident = ident
+#
+#      def __str__(self):
+#              return self.ident
index 7f3f485..3aff755 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
diff --git a/python/pycocci.ml.in b/python/pycocci.ml.in
new file mode 100644 (file)
index 0000000..ca370fc
--- /dev/null
@@ -0,0 +1 @@
+include @PYCOCCI_FILE@
index 6c2b0c6..aca8366 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5900641..6bc09b9 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -34,6 +36,29 @@ let call_pretty f a =
 
 let exprrep = call_pretty Pretty_print_c.pp_expression_gen
 
+let commalistrep list_printer elem_printer comma_printer x =
+  (call_pretty list_printer x,
+   List.map
+     (function x ->
+       call_pretty elem_printer (comma_printer x) (* drop commas *))
+     x)
+
+let exprlistrep =
+  commalistrep Pretty_print_c.pp_arg_list_gen Pretty_print_c.pp_arg_gen
+    Ast_c.unwrap
+
+let paramlistrep =
+  commalistrep Pretty_print_c.pp_param_list_gen Pretty_print_c.pp_param_gen
+    Ast_c.unwrap
+
+let initlistrep =
+  commalistrep Pretty_print_c.pp_init_list_gen Pretty_print_c.pp_init_gen
+    Ast_c.unwrap
+
+let fieldlistrep =
+  commalistrep Pretty_print_c.pp_field_list_gen Pretty_print_c.pp_field_gen
+    (function x -> x)
+
 let stringrep = function
   Ast_c.MetaIdVal        (s,_) -> s
 | Ast_c.MetaFuncVal      s -> s
index cda8a0b..acef890 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -22,5 +24,8 @@
  *)
 
 
-val exprrep : Ast_c.expression -> string
+val exprlistrep : Ast_c.argument Ast_c.wrap2 list -> string * string list
+val paramlistrep : Ast_c.parameterType Ast_c.wrap2 list -> string * string list
+val initlistrep : Ast_c.initialiser Ast_c.wrap2 list -> string * string list
+val fieldlistrep : Ast_c.field list -> string * string list
 val stringrep : Ast_c.metavar_binding_kind -> string
index 39e0468..c1792b6 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -251,29 +253,52 @@ let construct_variables mv e =
     with Not_found -> None
   in
 
+(* Only string in this representation, so no point
   let instantiate_Expression(x) =
     let str = pystring_fromstring (Pycocci_aux.exprrep x) in
     pycocci_instantiate_class "coccilib.elems.Expression"
       (pytuple_fromsingle (str))
   in
+*)
 
+(* Only string in this representation, so no point
   let instantiate_Identifier(x) =
     let str = pystring_fromstring x in
     pycocci_instantiate_class "coccilib.elems.Identifier"
       (pytuple_fromsingle (str))
   in
+*)
+
+  let instantiate_term_list py printer lst  =
+    let (str,elements) = printer lst in
+    let str = pystring_fromstring str in
+    let elements =
+      pytuple_fromarray
+       (Array.of_list (List.map pystring_fromstring elements)) in
+    let repr =
+      pycocci_instantiate_class "coccilib.elems.TermList"
+       (pytuple_fromarray (Array.of_list [str;elements])) in
+    let _ = build_variable py repr in () in
 
   List.iter (function (py,(r,m),_) ->
     match find_binding (r,m) with
       None -> ()
-    | Some (_, Ast_c.MetaExprVal (expr,_)) ->
+(*    | Some (_, Ast_c.MetaExprVal (expr,_)) ->
        let expr_repr = instantiate_Expression(expr) in
        let _ = build_variable py expr_repr in
-       ()
-    | Some (_, Ast_c.MetaIdVal (id,_)) ->
+       () *)
+  (*  | Some (_, Ast_c.MetaIdVal (id,_)) ->
        let id_repr = instantiate_Identifier(id) in
        let _ = build_variable py id_repr in
-       ()
+       () *)
+    | Some (_, Ast_c.MetaExprListVal (exprlist)) ->
+       instantiate_term_list py Pycocci_aux.exprlistrep exprlist
+    | Some (_, Ast_c.MetaParamListVal (paramlist)) ->
+       instantiate_term_list py Pycocci_aux.paramlistrep paramlist
+    | Some (_, Ast_c.MetaInitListVal (initlist)) ->
+       instantiate_term_list py Pycocci_aux.initlistrep initlist
+    | Some (_, Ast_c.MetaFieldListVal (fieldlist)) ->
+       instantiate_term_list py Pycocci_aux.fieldlistrep fieldlist
     | Some (_, Ast_c.MetaPosValList l) ->
        let locs =
         List.map
@@ -300,13 +325,10 @@ let construct_variables mv e =
 let construct_script_variables mv =
   List.iter
     (function (_,py) ->
-      let vl =
-       let str =
-         pystring_fromstring
-           "initial value: consider using coccinelle.varname" in
-       pycocci_instantiate_class "coccilib.elems.Identifier"
-         (pytuple_fromsingle (str)) in
-      let _ = build_variable py vl in
+      let str =
+       pystring_fromstring
+         "initial value: consider using coccinelle.varname" in
+      let _ = build_variable py str in
       ())
     mv
 
diff --git a/release.nix b/release.nix
new file mode 100644 (file)
index 0000000..c1c18d1
--- /dev/null
@@ -0,0 +1,326 @@
+# Hydra build file for coccinelle
+
+{ nixpkgs ? /etc/nixos/nixpkgs
+, cocciSrc ? { outPath = ./.; revCount = 1234; gitTag = "abcdef"; }
+, testsSrc ? { outPath = ../big-tests; rev = 1234; }
+, officialRelease ? false
+}:
+
+let
+  
+  # version information
+  version = builtins.readFile ./version;
+  versionSuffix = if officialRelease then "" else "pre${toString cocciSrc.revCount}-${cocciSrc.gitTag}";
+
+  # The source tarball taken from the repository.
+  # The tarball should actually be compilable using
+  #   ./configure && make depend && make opt && make install
+  # on systems other than nix.
+  tarball =
+    let
+      pkgs = import nixpkgs {
+        # use ocaml 3.12
+        config.packageOverrides =
+          pkgs:
+          { ocaml = pkgs.ocaml_3_12_1;
+            ocamlPackages = pkgs.ocamlPackages_3_12_1;
+          };
+      };
+      
+    in with pkgs; with ocamlPackages; releaseTools.sourceTarball {
+      name = "coccinelle-tarball";
+      src = cocciSrc;
+      inherit officialRelease;
+      inherit version;
+      inherit versionSuffix;
+
+      buildInputs = [
+        perl python texLiveFull
+        ocaml findlib menhir
+        ocaml_pcre ocaml_sexplib
+        ocaml_extlib pycaml
+      ];
+      
+      configurePhase = ''
+        # explicitly run perl because the configure script references a perl outside the nix store
+        # substituting the path to perl is not a good idea as it would invalidate the tarball on
+        # non-nix machines.
+        perl -w ./configure
+        
+        make depend
+      '';
+
+      preDist = ''
+        local PREVHOME=$HOME
+        export HOME=$TMPDIR    # the latex installation needs to write to the $HOME directory, so rename it here
+      '';
+      
+      dontCopyDist = 1; # we'll copy the tarball to the tarballs folder ourselves (and rename it)
+      postDist = ''
+        export HOME=$PREVHOME  # restore the home directory
+
+        ensureDir "$out/tarballs"
+
+        # rename the tarball to give it a version-specific name
+        cp coccinelle-*.tar.gz "$out/tarballs/coccinelle-${version}${versionSuffix}.tar.gz"
+      '';
+    };
+
+
+  # builds coccinelle, given a ocaml selector function and an ocaml environment builder.
+  # the build procedure itself is largely the same as the coccinelle expression in nixpkgs.
+  # the result should be a usable nix-expression
+  mkBuild = { name, ocamlVer, mkEnv, inclPython }: { system ? builtins.currentSystem }:
+    let pkgs = import nixpkgs {
+          inherit system;
+          config.packageOverrides = ocamlVer;
+        };
+
+        ocamlEnv = mkEnv pkgs;
+    in with pkgs; releaseTools.nixBuild {
+      inherit name;
+      src = tarball;
+
+      # ocamlEnv contains the ocaml libraries in scope.
+      buildInputs = 
+        lib.optional inclPython python
+        ++ [ perl texLiveFull ncurses makeWrapper ocamlEnv ];
+
+      # patch the files for use with nix
+      preConfigure = ''
+        sed -i "configure" -e's|/usr/bin/perl|${perl}/bin/perl|g'
+        sed -i "globals/config.ml.in" \
+            -e"s|/usr/local/share|$out/share|g"
+      '';
+
+      configureFlags = lib.optional (!inclPython) "--without-python";
+
+      buildPhase = ''
+        make depend 2> >(tee -a "$out/nix-support/make.log" >&2)
+        make all 2> >(tee -a "$out/nix-support/make.log" >&2)
+        make all.opt 2> >(tee -a "$out/nix-support/make.log" >&2)
+      '';
+
+      # run checking after installation.
+      # also, the test phase may require a yes/no input.
+      doCheck = false;
+      postInstall = ''
+        wrapProgram "$out/bin/spatch"                              \
+         --prefix "LD_LIBRARY_PATH" ":" "$out/lib"                 \
+         --prefix "PYTHONPATH" ":" "$out/share/coccinelle/python"
+
+        wrapProgram "$out/bin/spatch.opt"                          \
+         --prefix "LD_LIBRARY_PATH" ":" "$out/lib"                 \
+         --prefix "PYTHONPATH" ":" "$out/share/coccinelle/python"
+
+        yes | make test
+      '';
+    };
+
+
+  # selects which version of ocaml and ocamlPackages to use in nixpkgs.
+  selOcaml312 = pkgs:
+    { ocaml = pkgs.ocaml_3_12_1;
+      ocamlPackages = pkgs.ocamlPackages_3_12_1;
+    };
+  selOcaml311 = pkgs:
+    { ocaml = pkgs.ocaml_3_11_1;
+      ocamlPackages = pkgs.ocamlPackages_3_11_1;
+    };
+
+
+  # builds an environment with the ocaml packages needed to build coccinelle
+  # the mkList function selects which additional packages to include
+  mkOcamlEnv = mkList: pkgs:
+    pkgs.buildEnv {
+      name = "cocci-ocamlenv";
+      paths = with pkgs.ocamlPackages; [ pkgs.ocaml findlib menhir ] ++ mkList pkgs.ocamlPackages;
+    };
+
+  # selections of ocaml libraries
+  libs_full = mkOcamlEnv (libs: with libs; [ ocaml_pcre ocaml_sexplib ocaml_extlib pycaml ]);
+  libs_rse  = mkOcamlEnv (libs: with libs; [ ocaml_pcre ocaml_sexplib ocaml_extlib ]);
+  libs_se   = mkOcamlEnv (libs: with libs; [ ocaml_sexplib ocaml_extlib ]);
+  libs_null = mkOcamlEnv (libs: []);
+
+  # package builder for Debian-based OS'ses
+  makeDeb =
+    system: diskImageFun:
+    
+    with import nixpkgs { inherit system; };
+    releaseTools.debBuild {
+      name = "coccinelle-deb";
+      src = tarball;
+      diskImage = diskImageFun vmTools.diskImageFuns {
+        extraPackages = [ "python" "python-support" "ocaml-nox" "ocaml-findlib" ];
+      };
+      debRequires = [ "python" "python-support" "ocaml-nox" "ocaml-findlib" ];
+      doCheck = false;
+
+      buildPhase = ''
+        make depend
+        make all
+        make all.opt
+      '';
+    };
+
+  makeDeb_i686 = makeDeb "i686-linux";
+  makeDeb_x86_64 = makeDeb "x86_64-linux";
+
+  mkTask =
+    argsfun: { system ? builtins.currentSystem }:
+    let pkgs = import nixpkgs { inherit system; };
+        args = argsfun pkgs system;
+        name = "${args.name}-${version}${versionSuffix}";
+    in pkgs.stdenv.mkDerivation ({
+      phases = [ "runPhase" ];
+
+      runPhase = ''
+        ensureDir "$out"
+        ensureDir "$out/nix-support"
+        touch "$TMPDIR/result.log"
+        exec > >(tee -a "$TMPDIR/result.log") 2> >(tee -a "$TMPDIR/result.log" >&2)
+        runHook execPhase
+        cp "$TMPDIR/result.log" "$out/"
+        echo "report log $out/result.log" >> "$out/nix-support/hydra-build-products"
+        echo "$name" > "$out/nix-support/hydra-release-name"
+      '';
+
+      meta = {
+        description = "Coccinelle post-build task";
+        schedulingPriority = 8;
+      };
+    } // args // { inherit name; });
+
+  mkReport = inputs: mkTask (pkgs: _: with pkgs; {
+    name = "report";
+    builds = map (i: i {}) inputs;
+
+    execPhase = ''
+      echo "collecting logs"
+      for build in $builds; do
+        echo "$build/nix-support/make.log"
+        cat "$build/nix-support/make.log"
+      done
+
+      echo "grepping OCaml warnings"
+      if grep -2 "Warning " "$TMPDIR/result.log"
+      then
+        echo "found warnings!"
+        false
+      else
+        echo "there are apparently no significant warnings"
+      fi
+    '';
+
+    meta = {
+      description = "Analysis of the coccinelle build reports";
+      schedulingPriority = 5;
+    };
+  });
+
+  # Produces regression test results, which can be positive or
+  # negative. The build should succeed regardless of the outcome
+  # of individual tests unless coccinelle is horribly broken.
+  # The resulting files are stored in a tarball so that it allows
+  # manual inspection.
+  mkRegress = cocciSelect: mkTask (pkgs: system: with pkgs;
+    let coccinelle = cocciSelect { inherit system; };
+    in {
+      name = "regression-${toString testsSrc.rev}";
+      buildInputs = [ coccinelle ];
+
+      execPhase = ''
+        # prepare a writeable tests directory
+        # as this directory contains large
+        # files, we'll create links to the
+        # individual files.
+        ensureDir "$TMPDIR/tests"
+        cp -rs ${testsSrc}/* "$TMPDIR/tests/"
+       chmod -R u+w "$TMPDIR/tests/"
+        cd "$TMPDIR/tests"
+
+       # initialize essential environment variables
+        # for the makefile
+        export COCCIDIR=$TMPDIR
+        export SPATCH=${coccinelle}/bin/spatch.opt
+        export ISO=${coccinelle}/share/coccinelle/standard.iso
+        export DEFS=${coccinelle}/share/coccinelle/standard.h
+
+       # generate the test outcomes
+        make -e all
+
+        # collect the results
+       # note: the tarball is likely to contain useless
+        # symbolic links to files in the nix store. So be it.
+        cd "$TMPDIR"
+        tar -czf "$out/results.tar.gz" ./tests
+       echo "file binary-dist $out/results.tar.gz" >> "$out/nix-support/hydra-build-products"
+      '';
+
+      meta = {
+        description = "Regression test of Coccinelle";
+        schedulingPriority = 8;
+      };
+    });
+
+  # Checks whether the regression tests meet our expectations.
+  # If the set of failed tests is different than specified in
+  # the tests repository, this check fails.
+  checkRegress = regressSelect: mkTask (pkgs: system: with pkgs;
+    let regress = regressSelect { inherit system; };
+    in {
+      name = "test-${toString testsSrc.rev}";
+
+      execPhase = ''
+        # prepare a writeable tests directory
+        # as this directory contains large
+        # files, we'll create links to the
+        # individual files.
+        ensureDir "$TMPDIR/tests"
+        cp -rs ${testsSrc}/* "$TMPDIR/tests/"
+       chmod -R u+w "$TMPDIR/tests/"
+
+        # extract the outcome of the regression test over it
+       echo "reconstructing regression directory"
+        cd "$TMPDIR"
+        tar xfz "${regress}/results.tar.gz"
+        cd "$TMPDIR/tests"
+
+       echo "analyzing results"
+       make failedlog
+
+       echo "verifying the outcome"
+       make check
+      '';
+
+      meta = {
+        description = "Regression test of Coccinelle";
+        schedulingPriority = 8;
+      };
+    });
+
+in # list of jobs
+rec {
+  inherit tarball;
+
+  # different configurations of coccinelle builds based on different ocamls/available libraries
+  build = mkBuild { name = "coccinelle"; ocamlVer = selOcaml312; mkEnv = libs_full; inclPython = true; };
+  build_rse = mkBuild { name = "coccinelle_config1"; ocamlVer = selOcaml312; mkEnv = libs_rse; inclPython = true; };
+  build_se = mkBuild { name = "coccinelle_config2"; ocamlVer = selOcaml312; mkEnv = libs_se; inclPython = true; };
+  build_null_12 = mkBuild { name = "coccinelle_config3"; ocamlVer = selOcaml312; mkEnv = libs_null; inclPython = true; };
+  build_null_11 = mkBuild { name = "coccinelle_config4"; ocamlVer = selOcaml311; mkEnv = libs_null; inclPython = true; };
+  build_null_12_np = mkBuild { name = "coccinelle_config5"; ocamlVer = selOcaml312; mkEnv = libs_null; inclPython = false; };
+  build_null_11_np = mkBuild { name = "coccinelle_config6"; ocamlVer = selOcaml311; mkEnv = libs_null; inclPython = false; };
+  build_rse_np = mkBuild { name = "coccinelle_config7"; ocamlVer = selOcaml312; mkEnv = libs_rse; inclPython = false; };
+
+  report = mkReport [ build build_rse build_se build_null_12 build_null_11 build_null_12_np build_null_11_np build_rse_np ];
+
+  # different debian builds
+  # deb_ubuntu1010_i386 = makeDeb_i686 (disk: disk.ubuntu1010i386);
+  # deb_ubuntu1010_x86_64 = makeDeb_x86_64 (disk: disk.ubuntu1010x86_64);
+
+  # extensive tests
+  regress = mkRegress build;
+  test = checkRegress regress;
+}
index c8352a8..cd62ef8 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index a474c25..3190bd3 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index cb5347b..f9bbf18 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index f877d2b..12ab155 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 21ba994..488ea3a 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index ae064ff..f2430d1 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 4327842..4fc8e4b 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 03b0904..82119b5 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 3f5ec1e..2192c2a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -382,11 +384,11 @@ let test_regression_okfailed () =
 
   let newscore  = Common.empty_score () in
   let oks =
-    Common.cmd_to_list ("find -name \"*.ok\"")
+    Common.cmd_to_list ("find -name \"*.ok\"")
     ++
-    Common.cmd_to_list ("find -name \"*.spatch_ok\"")
+    Common.cmd_to_list ("find -name \"*.spatch_ok\"")
   in
-  let failed = Common.cmd_to_list ("find -name \"*.failed\"") in
+  let failed = Common.cmd_to_list ("find -name \"*.failed\"") in
 
   if null (oks ++ failed)
   then failwith "no ok/failed file, you certainly did a make clean"
index 031c3c3..d981e56 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 2e9e1a6..ceb191a 100644 (file)
@@ -18,8 +18,8 @@
  (cast_iso.res Ok) (com.res Ok) (comadd.res Ok) (comments.res Ok)
  (compare.res Ok) (condexp.res Ok) (const.res Ok) (const1bis.res Ok)
  (const_adding.res Ok) (const_array.res Ok) (const_implicit_iso.res Ok)
- (constructor.res Ok) (constty.res Ok) (constx.res Ok) (cs_check.res Ok)
- (cst.res Ok) (cst_null.res Ok) (csw.res Ok)
+ (constrem.res Ok) (constructor.res Ok) (constty.res Ok) (constx.res Ok)
+ (cs_check.res Ok) (cst.res Ok) (cst_null.res Ok) (csw.res Ok)
  (dbg.res
   (Pb
    "INCORRECT:diff token: else VS (\nFile <COCCIOUTPUTFILE>, line 8, column 2,  charpos = 133\n    around = 'else', whole content = \t\telse pr = NULL;(\"PCI\");\nFile \"tests/dbg.res\", line 7, column 5,  charpos = 130\n    around = '(', whole content = \t\tDBG(\"PCI\");\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -4,6 +4,6 @@\n     \tstruct resource *pr, *r = &dev->resource[idx];\n     \n     \tif (pr)\n    -\t\tDBG\n    -\t\telse pr = NULL;(\"PCI\");\n    +\t\tDBG(\"PCI\");\n    +\telse pr = NULL;\n     }\n"))
  (empty.res Ok) (end_commas.res Ok) (endif.res Ok) (enum.res Ok)
  (exitc.res
   (Pb
-   "PROBLEM\n   exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/exitcf7f019.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc87c840.cmxs\")\n"))
  (exitp.res (Pb "PROBLEM\n   exn = Failure(\"no python\")\n")) (exp.res Ok)
  (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok)
  (expopt3_ver1.res Ok) (expopt3_ver2.res Ok)
  (extra.res
   (Pb
-   "PROBLEM\n   exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/extra9e0ca1.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extra768a97.cmxs\")\n"))
  (fields.res Ok) (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok)
  (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (fnty.res Ok) (four.res Ok)
  (foura.res Ok) (fp.res Ok) (fsh.res Ok) (fun.res Ok)
  (gilles-question.res Ok) (gotobreak.res Ok) (hd.res Ok) (headers.res Ok)
- (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifbr.res Ok) (ifd.res Ok)
- (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (ifdef4.res Ok)
+ (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifadd.res Ok) (ifbr.res Ok)
+ (ifd.res Ok) (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (ifdef4.res Ok)
  (ifdef5.res Ok) (ifdef6.res Ok) (ifdef6a.res Ok) (ifdefmeta.res Ok)
  (ifdefmeta1.res Ok) (ifdefmeta2.res Ok) (ifdefmeta3.res Ok)
  (ifdefmeta4.res
@@ -79,7 +79,7 @@
   (Pb
    "PROBLEM\n   exn = Failure(\"minus: parse error: \\n = File \\\"tests/jloop1.cocci\\\", line 10, column 3,  charpos = 129\\n    around = '...>', whole content =    ...>\\n\")\n"))
  (julia10.res Ok) (julia7.res Ok) (justremove.res Ok) (keep_comma.res Ok)
- (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (ktype.res Ok)
+ (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (kr.res Ok) (ktype.res Ok)
  (labels_metastatement.res Ok) (labels_metastatement_ver1.res Ok)
  (lid.res Ok) (line_before_last.res Ok) (list_test.res Ok) (local.res Ok)
  (localid.res Ok) (longconst.res Ok) (longlong.res Ok) (longlongint.res Ok)
@@ -88,9 +88,9 @@
  (metahex.res
   (Pb
    "INCORRECT:diff token: f VS }\nFile \"tests/metahex.c\", line 2, column 2,  charpos = 15\n    around = 'f', whole content =   f(3);\nFile \"tests/metahex.res\", line 2, column 0,  charpos = 13\n    around = '}', whole content = }\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,4 +1,2 @@\n     int main() {\n    -  f(3);\n    -  g(0x03);\n     }\n"))
- (metaruleelem.res Ok) (metastatement2.res Ok) (metastatement_for.res Ok)
- (metastatement_if.res Ok) (minenum.res Ok) (minfn.res Ok)
- (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok)
+ (metaline.res Ok) (metaruleelem.res Ok) (metastatement2.res Ok)
+ (metastatement_for.res Ok) (metastatement_if.res Ok) (minenum.res Ok)
+ (minfn.res Ok) (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok)
  (minusdots_ver1.res Ok)
  (multi_func1.res
   (Pb
  (shared_brace.res Ok) (signed.res Ok) (sis.res Ok) (sizeof.res Ok)
  (sizeof_julia.res Ok) (sizeptr.res Ok) (sizestar.res Ok) (skip.res Ok)
  (smallfn.res Ok) (sp.res Ok) (spaces.res Ok) (spacing.res Ok) (spl.res Ok)
- (starprint.res Ok) (static.res Ok) (stm1.res Ok) (stm10.res Ok)
+ (starprint.res Ok) (static.res Ok)
+ (stm1.res (Pb "PROBLEM\n   exn = Failure(\"no python\")\n")) (stm10.res Ok)
  (stm10_ver1.res Ok) (stm2.res Ok) (stm3.res Ok) (stm4.res Ok) (stm5.res Ok)
- (stm6.res Ok) (stm7.res Ok) (stm8.res Ok) (stmt.res Ok) (str_init.res Ok)
- (strangeorder.res Ok) (strid.res Ok) (strid2.res Ok) (string.res Ok)
- (struct.res Ok) (struct_metavar.res Ok) (struct_typedef.res Ok)
- (structfoo.res Ok) (substruct.res Ok) (sw.res Ok) (switch.res Ok)
- (switchdecl.res Ok) (symbol.res Ok) (td.res Ok) (tern.res Ok) (test0.res Ok)
+ (stm6.res Ok) (stm7.res (Pb "PROBLEM\n   exn = Failure(\"no python\")\n"))
+ (stm8.res Ok) (stmt.res Ok) (str_init.res Ok) (strangeorder.res Ok)
+ (strid.res Ok) (strid2.res Ok) (string.res Ok) (struct.res Ok)
+ (struct_metavar.res Ok) (struct_typedef.res Ok) (structfoo.res Ok)
+ (substruct.res Ok) (sw.res Ok) (switch.res Ok) (switchdecl.res Ok)
+ (symbol.res Ok) (td.res Ok) (tdnl.res Ok) (tern.res Ok) (test0.res Ok)
  (test1.res Ok) (test10.res Ok) (test10_ver1.res Ok) (test11.res Ok)
  (test11_ver1.res Ok) (test12.res Ok) (test2.res Ok) (test3.res Ok)
  (test4.res Ok) (test5.res Ok) (test5_ver1.res Ok) (test6.res Ok)
  (test_unsigned_meta.res Ok) (three_types.res Ok) (threea.res Ok)
  (top.res Ok) (topdec.res Ok) (topdec_ver1.res Ok) (topdec_ver2.res Ok)
  (toplevel_macrostmt.res Ok) (toplevel_struct.res Ok) (tup.res Ok)
- (twoproto.res Ok) (ty.res Ok) (ty1.res Ok) (ty_tyexp.res Ok) (tydisj.res Ok)
- (tyex.res Ok) (type.res Ok) (type1.res Ok) (type_annotated.res Ok)
- (type_ver1.res Ok)
+ (twomatch.res Ok) (twoproto.res Ok) (ty.res Ok) (ty1.res Ok)
+ (ty_tyexp.res Ok) (tydisj.res Ok) (tyex.res Ok) (type.res Ok) (type1.res Ok)
+ (type_annotated.res Ok) (type_ver1.res Ok)
  (type_ver2.res
   (Pb
    "INCORRECT:PB parsing only in generated-file\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,5 +1,5 @@\n     int foo() {\n    -  int[10] *x;\n    +  int *x[10];\n       return 0;\n     }\n     \n"))
diff --git a/tests/SCORE_expected.sexp.save b/tests/SCORE_expected.sexp.save
deleted file mode 100644 (file)
index de9cd74..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-((a.res Ok) (a3d.res Ok) (a_and_e.res Ok) (a_and_e_ver1.res Ok) (ab.res Ok)
- (addaft.res Ok) (addbefore.res Ok) (addbeforeafter.res Ok) (addelse.res Ok)
- (addif.res Ok) (addif1.res Ok) (addif2.res Ok) (addtoo.res Ok)
- (after_if.res Ok) (anon.res Ok) (ar.res Ok) (arg.res Ok) (argument.res Ok)
- (array_init.res Ok) (array_size.res Ok) (arraysz.res Ok) (b1.res Ok)
- (b2.res Ok)
- (bad_iso_example.res
-  (Pb
-   "INCORRECT:diff token: ( VS x\nFile \"tests/bad_iso_example.c\", line 2, column 6,  charpos = 19\n    around = '(', whole content =   if ((x = 3)) return;\nFile \"tests/bad_iso_example.res\", line 2, column 6,  charpos = 19\n    around = 'x', whole content =   if (x) return;\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,4 +1,4 @@\n     int main() {\n    -  if ((x = 3)) return;\n    +  if (x) return;\n     }\n     \n"))
- (bad_ptr_print.res Ok) (bad_typedef.res Ok) (badexp.res Ok)
- (badpos.res
-  (Pb
-   "PROBLEM\n   exn = Failure(\"rule starting on line 1: already tagged token:\\nC code context\\nFile \\\"tests/badpos.c\\\", line 5, column 30,  charpos = 139\\n    around = 'reg_ptr', whole content = \\t (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2));\")\n"))
- (badtypedef.res Ok) (badzero.res Ok) (befS.res Ok) (ben.res Ok)
- (bitfield.res Ok) (braces.res Ok) (break.res Ok) (bug1.res Ok)
- (bugloop.res
-  (Pb
-   "INCORRECT:diff token: PF_FREEZE VS )\nFile <COCCIOUTPUTFILE>, line 12, column 16,  charpos = 390\n    around = 'PF_FREEZE', whole content = \t\t\trefrigerator(PF_FREEZE);\nFile \"tests/bugloop.res\", line 8, column 16,  charpos = 160\n    around = ')', whole content = \t\t\trefrigerator();\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,7 +1,3 @@\n    -/* this doesn't work, because on the paths where we don't find refrigerator,\n    -we expect to reach Exit without first going through current->flags & PF_FREEZE,\n    -but of course any path that goes around the loop does precisely that */\n    -\n     static int stir_transmit_thread(void *arg)\n     {\n     \n    @@ -9,7 +5,7 @@\n     \t{\n     \t\t/* if suspending, then power off and wait */\n     \t\tif (unlikely(freezing(current))) {\n    -\t\t\trefrigerator(PF_FREEZE);\n    +\t\t\trefrigerator();\n     \n     \t\t}\n     \t}\n"))
- (bugon.res Ok) (cards.res Ok) (cast.res Ok) (cast_iso.res Ok) (com.res Ok)
- (compare.res Ok) (const.res Ok) (const1bis.res Ok) (const_adding.res Ok)
- (const_array.res Ok) (const_implicit_iso.res Ok) (constty.res Ok)
- (constx.res Ok) (cs_check.res Ok) (cst.res Ok) (csw.res Ok)
- (dbg.res
-  (Pb
-   "INCORRECT:diff token: else VS (\nFile <COCCIOUTPUTFILE>, line 8, column 2,  charpos = 133\n    around = 'else', whole content = \t\telse pr = NULL;(\"PCI\");\nFile \"tests/dbg.res\", line 7, column 5,  charpos = 130\n    around = '(', whole content = \t\tDBG(\"PCI\");\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -4,6 +4,6 @@\n     \tstruct resource *pr, *r = &dev->resource[idx];\n     \n     \tif (pr)\n    -\t\tDBG\n    -\t\telse pr = NULL;(\"PCI\");\n    +\t\tDBG(\"PCI\");\n    +\telse pr = NULL;\n     }\n"))
- (dbg1.res
-  (Pb
-   "INCORRECT:diff token: E VS (\nFile <COCCIOUTPUTFILE>, line 5, column 2,  charpos = 75\n    around = 'E', whole content = \t\tE = NULL;(\"PCI\");\nFile \"tests/dbg1.res\", line 4, column 5,  charpos = 72\n    around = '(', whole content = \t\tDBG(\"PCI\");\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,6 +1,6 @@\n     \n     static inline void alloc_resource(struct pci_dev *dev, int idx)\n     {\n    -\t\tDBG\n    -\t\tE = NULL;(\"PCI\");\n    +\t\tDBG(\"PCI\");\n    +\t\tE = NULL;\n     }\n"))
- (dc_close.res Ok) (debug.res Ok) (dec.res Ok) (decl.res Ok) (decl2.res Ok)
- (decl_space.res Ok)
- (decl_split.res
-  (Pb
-   "INCORRECT:diff token: int VS }\nFile \"tests/decl_split.c\", line 2, column 8,  charpos = 27\n    around = 'int', whole content =         int x, y;\nFile \"tests/decl_split.res\", line 2, column 0,  charpos = 19\n    around = '}', whole content = }\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,3 +1,2 @@\n     int func(int i) { \n    -        int x, y;\n     }\n"))
- (define_exp.res Ok) (define_param.res Ok) (deftodo.res Ok)
- (delete_function.res Ok) (deref.res Ok) (devlink.res Ok) (disjexpr.res Ok)
- (disjexpr_ver1.res Ok) (disjexpr_ver2.res Ok) (distribute.res Ok)
- (double.res Ok) (double_assign.res Ok) (double_switch.res Ok)
- (doublepos.res Ok) (doubleswitch.res Ok)
- (doundo.res
-  (Pb
-   "INCORRECT:diff token: xxx VS new_foo\nFile <COCCIOUTPUTFILE>, line 7, column 2,  charpos = 85\n    around = 'xxx', whole content =   xxx();\nFile \"tests/doundo.res\", line 7, column 2,  charpos = 85\n    around = 'new_foo', whole content =   new_foo();\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -4,5 +4,5 @@\n     {\n       const s8 (*queue_priority_mapping)[2];\n       s8 *noevent;\n    -  xxx();\n    +  new_foo();\n     }\n"))
- (dowhile.res Ok) (dropf.res Ok) (dropparam.res Ok) (edots.res Ok)
- (edots_ver1.res Ok) (empty.res Ok) (end_commas.res Ok) (endif.res Ok)
- (enum.res Ok) (exp.res Ok) (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok)
- (expopt3.res Ok) (expopt3_ver1.res Ok) (expopt3_ver2.res Ok) (fields.res Ok)
- (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok)
- (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (four.res Ok) (foura.res Ok)
- (fp.res Ok) (fsh.res Ok) (fun.res Ok) (gilles-question.res Ok)
- (gotobreak.res Ok) (hd.res Ok) (headers.res Ok) (hex.res Ok) (hil1.res Ok)
- (if.res Ok) (ifbr.res Ok) (ifdef1.res Ok) (ifdef2.res Ok)
- (ifdef3.res
-  (Pb
-   "PROBLEM\n   exn = Lexer_cocci.Lexical(\"unrecognised symbol, in token rule: #\")\n"))
- (ifdef4.res Ok) (ifdef5.res Ok) (ifdef6.res Ok) (ifdef6a.res Ok)
- (ifdefmeta.res Ok) (ifdefmeta1.res Ok) (ifdefmeta2.res Ok)
- (ifdefmeta3.res Ok)
- (ifdefmeta4.res
-  (Pb
-   "PROBLEM\n   exn = Unix.Unix_error(20, \"stat\", \"tests/ifdefmeta4.cocci\")\n"))
- (ifend.res Ok) (ifzer.res Ok) (inc.res Ok)
- (incdir.res
-  (Pb
-   "INCORRECT:diff token: x VS 12\nFile \"tests/incdir.c\", line 4, column 6,  charpos = 46\n    around = 'x', whole content =   foo(x);\nFile \"tests/incdir.res\", line 4, column 6,  charpos = 46\n    around = '12', whole content =   foo(12);\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,5 +1,5 @@\n     #include \"sub/incdir2.c\"\n     \n     int main () {\n    -  foo(x);\n    +  foo(12);\n     }\n"))
- (incl.res Ok) (inclifdef.res Ok) (include.res Ok)
- (incompatible_value.res Ok) (inherited.res Ok) (inherited_ver1.res Ok)
- (inhpos.res Ok) (initializer.res Ok) (initializer_many_fields.res Ok)
- (inline.res Ok) (isococci.res Ok) (isotest.res Ok) (isotest2.res Ok)
- (iterator.res Ok)
- (jloop1.res
-  (Pb
-   "PROBLEM\n   exn = Failure(\"minus: parse error: \\n = File \\\"tests/jloop1.cocci\\\", line 10, column 3,  charpos = 129\\n    around = '...>', whole content =    ...>\\n\")\n"))
- (julia10.res Ok) (julia7.res Ok) (justremove.res Ok) (keep_comma.res Ok)
- (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (ktype.res Ok)
- (labels_metastatement.res Ok) (labels_metastatement_ver1.res Ok)
- (line_before_last.res Ok) (local.res Ok) (localid.res Ok) (longconst.res Ok)
- (longlong.res Ok) (longlongint.res Ok) (loop.res Ok) (lvalue.res Ok)
- (macro.res Ok) (macro_int16.res Ok) (match_no_meta.res Ok) (max.res Ok)
- (memory.res (Pb "PROBLEM\n   exn = Out of memory\n"))
- (metahex.res
-  (Pb
-   "INCORRECT:diff token: f VS }\nFile \"tests/metahex.c\", line 2, column 2,  charpos = 15\n    around = 'f', whole content =   f(3);\nFile \"tests/metahex.res\", line 2, column 0,  charpos = 13\n    around = '}', whole content = }\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,4 +1,2 @@\n     int main() {\n    -  f(3);\n    -  g(0x03);\n     }\n"))
- (metaruleelem.res Ok) (metastatement2.res Ok) (metastatement_for.res Ok)
- (metastatement_if.res Ok)
- (mini_null_ref.res
-  (Pb
-   "INCORRECT:diff token: if VS struct\nFile <COCCIOUTPUTFILE>, line 6, column 8,  charpos = 269\n    around = 'if', whole content =         if (!pdata) {\nFile \"tests/mini_null_ref.res\", line 6, column 8,  charpos = 269\n    around = 'struct', whole content =         struct w90p910_keypad *keypad;\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -3,6 +3,8 @@\n             const struct w90p910_keypad_platform_data *pdata =\n                                                     pdev->dev.platform_data;\n             const struct matrix_keymap_data * keymap_data;\n    +        struct w90p910_keypad *keypad;\n    +\n             if (!pdata) {\n                     dev_err(&pdev->dev, \"no platform data defined\\n\");\n                     return -EINVAL;\n"))
- (minstruct.res Ok) (minusdots.res Ok) (minusdots_ver1.res Ok)
- (multi_func1.res
-  (Pb
-   "PROBLEM\n   exn = Failure(\"minus: parse error: \\n = File \\\"tests/multi_func1.cocci\\\", line 12, column 2,  charpos = 102\\n    around = 'fn2', whole content =   fn2(...) {\\n\")\n"))
- (multiplus.res Ok) (multitype.res Ok) (multitypedef.res Ok)
- (multivars.res Ok) (nest.res Ok) (nestone.res Ok) (nestseq.res Ok)
- (neststruct.res Ok) (nl.res Ok) (nocast.res Ok) (not.res Ok) (notest.res Ok)
- (noty.res Ok) (null_type.res Ok)
- (oddifdef.res
-  (Pb
-   "INCORRECT:diff token: #else\n VS x\nFile <COCCIOUTPUTFILE>, line 10, column 0,  charpos = 114\n    around = '#else\n', whole content = #else\nFile \"tests/oddifdef.res\", line 10, column 2,  charpos = 116\n    around = 'x', whole content =   x = 0;\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -7,8 +7,9 @@\n         a = 5;\n     \n     #ifdef FOO\n    +  x = 0;\n     #else\n    -  \n    +  x = 0;\n     #endif\n     }\n     \n    @@ -21,8 +22,9 @@\n         a = 3;\n     \n     #ifdef FOO\n    +  x = 0;\n     #else\n    -  \n    +  x = 0;\n     #endif\n     }\n     \n    @@ -35,7 +37,8 @@\n     #endif\n     \n     #ifdef FOO\n    +  x = 0;\n     #else\n    -  \n    +  x = 0;\n     #endif\n     }\n"))
- (of.res Ok) (oneline.res Ok) (opt.res Ok) (optional_qualifier.res Ok)
- (optional_storage.res Ok) (orexp.res Ok) (overshoot.res Ok) (param.res Ok)
- (param_end.res Ok) (param_ver1.res Ok) (parameters_dots.res Ok)
- (partial.res Ok)
- (pb_distribute_type.res
-  (Pb
-   "INCORRECT:PB parsing only in generated-file\n    diff (result(<) vs expected_result(>)) = \n    @@ -5,11 +5,11 @@\n     \n     \n     int foo() {\n    -  int * *x;\n    +  int **x;\n       return 0;\n     }\n     \n     int foo() {\n    -  int[45] *x;\n    +  int (*x)[45];\n       return 0;\n     }\n"))
- (pb_distribute_type2.res
-  (Pb
-   "INCORRECT:PB parsing only in generated-file\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,5 +1,5 @@\n     int foo() {\n    -  int* x;\n    +  int *x;\n       return 0;\n     }\n     \n    @@ -10,6 +10,6 @@\n     }\n     \n     int foo() {\n    -  int x[45]*;\n    +  int (*x)[45];\n       return 0;\n     }\n"))
- (pb_distribute_type3.res
-  (Pb "PROBLEM\n   exn = Failure(\"line 7: index 53 53 already used\\n\")\n"))
- (pb_distribute_type4.res Ok) (pb_params_iso.res Ok)
- (pb_parsing_macro.res Ok) (pb_tag_symbols.res Ok) (pmac.res Ok)
- (posiso.res Ok) (positionc.res Ok) (post.res Ok) (print_return.res Ok)
- (proto.res Ok) (proto2.res Ok) (proto_ver1.res Ok) (proto_ver2.res Ok)
- (protoassert.res Ok) (protox.res Ok) (rcu3.res Ok) (regexp.res Ok)
- (regexp2.res Ok) (regexp3.res Ok)
- (remstruct.res
-  (Pb
-   "INCORRECT:not same number of entities (func, decl, ...)\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,10 +1,3 @@\n    -\n    -      .ack    = mpuio_ack_irq,\n    -      .mask   = mpuio_mask_irq,\n    -      .unmask = mpuio_unmask_irq\n    -\n    -  .b = 15,\n    -\n     int hello ( String input )\n     {\n       String input = input.lowercase();\n"))
- (replace_typedef.res Ok) (reserved.res Ok) (retmacro.res Ok) (rets.res Ok)
- (return.res Ok) (return_implicit.res Ok) (retval.res Ok) (same_expr.res Ok)
- (scope_problem.res
-  (Pb
-   "INCORRECT:diff token: } VS a\nFile <COCCIOUTPUTFILE>, line 5, column 2,  charpos = 43\n    around = '}', whole content =   }\nFile \"tests/scope_problem.res\", line 7, column 4,  charpos = 49\n    around = 'a', whole content =     a = 2;\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,7 +1,10 @@\n     void main(int i) {\n     \n    +  \n    +\n       if(1) {\n         int a;\n    +    a = 2;\n       }\n     \n     \n"))
- (serio.res
-  (Pb
-   "INCORRECT:diff token: init_MUTEX VS mutex_init\nFile \"tests/serio.c\", line 7, column 1,  charpos = 130\n    around = 'init_MUTEX', whole content = \tinit_MUTEX(&serio->drv_sem);\nFile \"tests/serio.res\", line 7, column 1,  charpos = 130\n    around = 'mutex_init', whole content = \tmutex_init(&serio->new_lock);\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -4,5 +4,5 @@\n     \n     static void serio_init_port(struct serio *serio)\n     {\n    -\tinit_MUTEX(&serio->drv_sem);\n    +\tmutex_init(&serio->new_lock);\n     }\n"))
- (shared_brace.res Ok) (signed.res Ok) (sis.res Ok) (sizeof.res Ok)
- (sizeof_julia.res Ok) (sizestar.res Ok) (skip.res Ok) (sp.res Ok)
- (spaces.res Ok) (spl.res Ok)
- (static.res (Pb "PROBLEM\n   exn = Common.Impossible\n")) (stm1.res Ok)
- (stm10.res Ok) (stm10_ver1.res Ok) (stm2.res Ok) (stm3.res Ok) (stm4.res Ok)
- (stm5.res Ok) (stm6.res Ok) (stm7.res Ok) (stm8.res Ok) (stmt.res Ok)
- (strangeorder.res Ok) (string.res Ok) (struct.res Ok)
- (struct_metavar.res Ok) (struct_typedef.res Ok) (structfoo.res Ok)
- (substruct.res Ok) (sw.res Ok) (switch.res Ok) (switchdecl.res Ok)
- (td.res Ok) (test0.res Ok) (test1.res Ok) (test10.res Ok)
- (test10_ver1.res Ok) (test11.res Ok) (test11_ver1.res Ok) (test12.res Ok)
- (test2.res Ok) (test3.res Ok) (test4.res Ok) (test5.res Ok)
- (test5_ver1.res Ok) (test6.res Ok) (test7.res Ok) (test8.res Ok)
- (test9.res Ok) (test_s.res Ok) (test_unsigned_meta.res Ok)
- (three_types.res Ok) (threea.res Ok) (top.res Ok) (topdec.res Ok)
- (topdec_ver1.res Ok) (topdec_ver2.res Ok) (toplevel_macrostmt.res Ok)
- (toplevel_struct.res Ok) (tup.res Ok) (twoproto.res Ok) (ty.res Ok)
- (ty1.res Ok) (ty_tyexp.res Ok) (tydisj.res Ok) (tyex.res Ok) (type.res Ok)
- (type1.res Ok) (type_annotated.res Ok) (type_ver1.res Ok)
- (type_ver2.res
-  (Pb
-   "INCORRECT:PB parsing only in generated-file\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,5 +1,5 @@\n     int foo() {\n    -  int[10] *x;\n    +  int *x[10];\n       return 0;\n     }\n     \n"))
- (typedef.res Ok)
- (typedef3.res
-  (Pb
-   "INCORRECT:diff token: link VS p_dev\nFile <COCCIOUTPUTFILE>, line 7, column 29,  charpos = 137\n    around = 'link', whole content = \tunsigned int iobase = info->link.io.BasePort1;\nFile \"tests/typedef3.res\", line 7, column 29,  charpos = 137\n    around = 'p_dev', whole content = \tunsigned int iobase = info->p_dev->io.BasePort1;\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -4,7 +4,7 @@\n     \n     static void should_work(foo *info)\n     {\n    -\tunsigned int iobase = info->link.io.BasePort1;\n    +\tunsigned int iobase = info->p_dev->io.BasePort1;\n     }\n     \n     static void does_work(struct bluecard_info_t *info)\n"))
- (typedef_double.res Ok)
- (typeof.res
-  (Pb
-   "INCORRECT:diff token: x VS sizeof\nFile <COCCIOUTPUTFILE>, line 3, column 4,  charpos = 26\n    around = 'x', whole content =   f(x);\nFile \"tests/typeof.res\", line 3, column 4,  charpos = 26\n    around = 'sizeof', whole content =   f(sizeof(struct foo));\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,4 +1,4 @@\n     int main() {\n       int x;\n    -  f(x);\n    +  f(sizeof(struct foo));\n     }\n"))
- (useless_cast.res Ok) (varargs.res Ok) (video1bis.res Ok) (void.res Ok)
- (vpos.res Ok) (whitespace.res Ok) (wierd_argument.res Ok)
- (wierdinit.res
-  (Pb
-   "seems incorrect, but only because of code that was not parsablediff token: dev_link_t VS struct\nFile \"tests/wierdinit.c\", line 4, column 1,  charpos = 27\n    around = 'dev_link_t', whole content = \tdev_link_t *link;\nFile \"tests/wierdinit.res\", line 4, column 1,  charpos = 27\n    around = 'struct', whole content = \tstruct pcmcia_device *link;\n"))
- (ws2.res Ok) (xfield.res Ok) (y2.res Ok) (zero.res Ok))
\ No newline at end of file
index 3527da8..ceb191a 100644 (file)
@@ -18,8 +18,8 @@
  (cast_iso.res Ok) (com.res Ok) (comadd.res Ok) (comments.res Ok)
  (compare.res Ok) (condexp.res Ok) (const.res Ok) (const1bis.res Ok)
  (const_adding.res Ok) (const_array.res Ok) (const_implicit_iso.res Ok)
- (constructor.res Ok) (constty.res Ok) (constx.res Ok) (cs_check.res Ok)
- (cst.res Ok) (cst_null.res Ok) (csw.res Ok)
+ (constrem.res Ok) (constructor.res Ok) (constty.res Ok) (constx.res Ok)
+ (cs_check.res Ok) (cst.res Ok) (cst_null.res Ok) (csw.res Ok)
  (dbg.res
   (Pb
    "INCORRECT:diff token: else VS (\nFile <COCCIOUTPUTFILE>, line 8, column 2,  charpos = 133\n    around = 'else', whole content = \t\telse pr = NULL;(\"PCI\");\nFile \"tests/dbg.res\", line 7, column 5,  charpos = 130\n    around = '(', whole content = \t\tDBG(\"PCI\");\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -4,6 +4,6 @@\n     \tstruct resource *pr, *r = &dev->resource[idx];\n     \n     \tif (pr)\n    -\t\tDBG\n    -\t\telse pr = NULL;(\"PCI\");\n    +\t\tDBG(\"PCI\");\n    +\telse pr = NULL;\n     }\n"))
  (empty.res Ok) (end_commas.res Ok) (endif.res Ok) (enum.res Ok)
  (exitc.res
   (Pb
-   "PROBLEM\n   exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/exitcf7f019.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc87c840.cmxs\")\n"))
  (exitp.res (Pb "PROBLEM\n   exn = Failure(\"no python\")\n")) (exp.res Ok)
  (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok)
  (expopt3_ver1.res Ok) (expopt3_ver2.res Ok)
  (extra.res
   (Pb
-   "PROBLEM\n   exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/extra9e0ca1.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extra768a97.cmxs\")\n"))
  (fields.res Ok) (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok)
  (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (fnty.res Ok) (four.res Ok)
  (foura.res Ok) (fp.res Ok) (fsh.res Ok) (fun.res Ok)
  (gilles-question.res Ok) (gotobreak.res Ok) (hd.res Ok) (headers.res Ok)
- (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifbr.res Ok) (ifd.res Ok)
- (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (ifdef4.res Ok)
+ (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifadd.res Ok) (ifbr.res Ok)
+ (ifd.res Ok) (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (ifdef4.res Ok)
  (ifdef5.res Ok) (ifdef6.res Ok) (ifdef6a.res Ok) (ifdefmeta.res Ok)
  (ifdefmeta1.res Ok) (ifdefmeta2.res Ok) (ifdefmeta3.res Ok)
  (ifdefmeta4.res
@@ -79,7 +79,7 @@
   (Pb
    "PROBLEM\n   exn = Failure(\"minus: parse error: \\n = File \\\"tests/jloop1.cocci\\\", line 10, column 3,  charpos = 129\\n    around = '...>', whole content =    ...>\\n\")\n"))
  (julia10.res Ok) (julia7.res Ok) (justremove.res Ok) (keep_comma.res Ok)
- (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (ktype.res Ok)
+ (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (kr.res Ok) (ktype.res Ok)
  (labels_metastatement.res Ok) (labels_metastatement_ver1.res Ok)
  (lid.res Ok) (line_before_last.res Ok) (list_test.res Ok) (local.res Ok)
  (localid.res Ok) (longconst.res Ok) (longlong.res Ok) (longlongint.res Ok)
@@ -88,9 +88,9 @@
  (metahex.res
   (Pb
    "INCORRECT:diff token: f VS }\nFile \"tests/metahex.c\", line 2, column 2,  charpos = 15\n    around = 'f', whole content =   f(3);\nFile \"tests/metahex.res\", line 2, column 0,  charpos = 13\n    around = '}', whole content = }\n\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,4 +1,2 @@\n     int main() {\n    -  f(3);\n    -  g(0x03);\n     }\n"))
- (metaruleelem.res Ok) (metastatement2.res Ok) (metastatement_for.res Ok)
- (metastatement_if.res Ok) (minenum.res Ok) (minfn.res Ok)
- (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok)
+ (metaline.res Ok) (metaruleelem.res Ok) (metastatement2.res Ok)
+ (metastatement_for.res Ok) (metastatement_if.res Ok) (minenum.res Ok)
+ (minfn.res Ok) (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok)
  (minusdots_ver1.res Ok)
  (multi_func1.res
   (Pb
  (strid.res Ok) (strid2.res Ok) (string.res Ok) (struct.res Ok)
  (struct_metavar.res Ok) (struct_typedef.res Ok) (structfoo.res Ok)
  (substruct.res Ok) (sw.res Ok) (switch.res Ok) (switchdecl.res Ok)
- (symbol.res Ok) (td.res Ok) (tern.res Ok) (test0.res Ok) (test1.res Ok)
- (test10.res Ok) (test10_ver1.res Ok) (test11.res Ok) (test11_ver1.res Ok)
- (test12.res Ok) (test2.res Ok) (test3.res Ok) (test4.res Ok) (test5.res Ok)
- (test5_ver1.res Ok) (test6.res Ok) (test7.res Ok) (test8.res Ok)
- (test9.res Ok) (test_s.res Ok) (test_unsigned_meta.res Ok)
- (three_types.res Ok) (threea.res Ok) (top.res Ok) (topdec.res Ok)
- (topdec_ver1.res Ok) (topdec_ver2.res Ok) (toplevel_macrostmt.res Ok)
- (toplevel_struct.res Ok) (tup.res Ok) (twoproto.res Ok) (ty.res Ok)
- (ty1.res Ok) (ty_tyexp.res Ok) (tydisj.res Ok) (tyex.res Ok) (type.res Ok)
- (type1.res Ok) (type_annotated.res Ok) (type_ver1.res Ok)
+ (symbol.res Ok) (td.res Ok) (tdnl.res Ok) (tern.res Ok) (test0.res Ok)
+ (test1.res Ok) (test10.res Ok) (test10_ver1.res Ok) (test11.res Ok)
+ (test11_ver1.res Ok) (test12.res Ok) (test2.res Ok) (test3.res Ok)
+ (test4.res Ok) (test5.res Ok) (test5_ver1.res Ok) (test6.res Ok)
+ (test7.res Ok) (test8.res Ok) (test9.res Ok) (test_s.res Ok)
+ (test_unsigned_meta.res Ok) (three_types.res Ok) (threea.res Ok)
+ (top.res Ok) (topdec.res Ok) (topdec_ver1.res Ok) (topdec_ver2.res Ok)
+ (toplevel_macrostmt.res Ok) (toplevel_struct.res Ok) (tup.res Ok)
+ (twomatch.res Ok) (twoproto.res Ok) (ty.res Ok) (ty1.res Ok)
+ (ty_tyexp.res Ok) (tydisj.res Ok) (tyex.res Ok) (type.res Ok) (type1.res Ok)
+ (type_annotated.res Ok) (type_ver1.res Ok)
  (type_ver2.res
   (Pb
    "INCORRECT:PB parsing only in generated-file\n    diff (result(<) vs expected_result(>)) = \n    @@ -1,5 +1,5 @@\n     int foo() {\n    -  int[10] *x;\n    +  int *x[10];\n       return 0;\n     }\n     \n"))
index cecb19b..bf7ca9f 100644 (file)
@@ -1,4 +1,4 @@
-@@ identifier func;@@
+@disable add_signed@ identifier func;@@
 func (...) { 
 - const int i;
 + float i;
diff --git a/tests/constrem.c b/tests/constrem.c
new file mode 100644 (file)
index 0000000..5f2110f
--- /dev/null
@@ -0,0 +1,3 @@
+static const int a;
+
+static const int (*f)(const int);
diff --git a/tests/constrem.cocci b/tests/constrem.cocci
new file mode 100644 (file)
index 0000000..2a4d46f
--- /dev/null
@@ -0,0 +1,9 @@
+@@
+identifier d;
+@@
+-int d;
+
+@@
+@@
+
+- int (*f)(int);
\ No newline at end of file
diff --git a/tests/constrem.res b/tests/constrem.res
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/tests/ifadd.c b/tests/ifadd.c
new file mode 100644 (file)
index 0000000..dbfd0f2
--- /dev/null
@@ -0,0 +1,8 @@
+int main() {
+  while (y) {
+    if (x) {
+      one();
+      two();
+    }
+  }
+}
diff --git a/tests/ifadd.cocci b/tests/ifadd.cocci
new file mode 100644 (file)
index 0000000..a6fa4ce
--- /dev/null
@@ -0,0 +1,8 @@
+@@
+@@
+if (...)
+{
+...
++ foo();
+//  two();
+}
diff --git a/tests/ifadd.res b/tests/ifadd.res
new file mode 100644 (file)
index 0000000..2ae4a4a
--- /dev/null
@@ -0,0 +1,9 @@
+int main() {
+  while (y) {
+    if (x) {
+      one();
+      two();
+      foo();
+    }
+  }
+}
diff --git a/tests/indecl.c b/tests/indecl.c
new file mode 100644 (file)
index 0000000..c06546c
--- /dev/null
@@ -0,0 +1,14 @@
+int x;
+
+int y = 0;
+
+int main () {
+  int xx;
+  int yy = 0;
+}
+
+struct yyy {
+  int xxx;
+  int yyy;
+};
+
diff --git a/tests/indecl.cocci b/tests/indecl.cocci
new file mode 100644 (file)
index 0000000..aacfda4
--- /dev/null
@@ -0,0 +1,23 @@
+@r@
+identifier x;
+@@
+
+int x;
+
+@script:python@
+x << r.x;
+@@
+
+print x
+
+@rr@
+identifier x;
+@@
+
+struct x { ... int x; ... };
+
+@script:python@
+x << rr.x;
+@@
+
+print "name",x
\ No newline at end of file
diff --git a/tests/kr.c b/tests/kr.c
new file mode 100644 (file)
index 0000000..7e01707
--- /dev/null
@@ -0,0 +1,7 @@
+int a(x)
+  b c;
+{
+  y = (j)
+    r;
+  foo();
+}
diff --git a/tests/kr.cocci b/tests/kr.cocci
new file mode 100644 (file)
index 0000000..880c705
--- /dev/null
@@ -0,0 +1,4 @@
+@@
+@@
+
+- foo();
diff --git a/tests/kr.res b/tests/kr.res
new file mode 100644 (file)
index 0000000..e4a3358
--- /dev/null
@@ -0,0 +1,6 @@
+int a(x)
+  b c;
+{
+  y = (j)
+    r;
+}
diff --git a/tests/metaline.c b/tests/metaline.c
new file mode 100644 (file)
index 0000000..2aea4d7
--- /dev/null
@@ -0,0 +1,9 @@
+int main () {
+  static int x;
+  static int y;
+  if (12) f(4+3);
+  g(4+3);
+  m(3+3);
+  g(3+3);
+  r(3+4);
+}
diff --git a/tests/metaline.cocci b/tests/metaline.cocci
new file mode 100644 (file)
index 0000000..79f79ec
--- /dev/null
@@ -0,0 +1,49 @@
+@r@
+expression E;
+statement S;
+@@
+
+f(3 +@E@S 4);
+
+@@
+expression r.E;
+@@
+
+- g(E)
++ h(E)
+
+@@
+expression x;
+statement r.S;
+@@
+
+- if
++ while
+  (x) S
+
+@s@
+expression E;
+position p;
+@@
+
+-m(3 +@E@p 3);
+
+@@
+expression s.E;
+@@
+
+- g(E)
++ q(E)
+
+@a@
+declaration d;
+@@
+
+-int x@d;
+
+@@
+declaration a.d;
+@@
+
+int y;
++d
diff --git a/tests/metaline.res b/tests/metaline.res
new file mode 100644 (file)
index 0000000..43c0a37
--- /dev/null
@@ -0,0 +1,8 @@
+int main () {
+  static int y;
+  static int x;
+  while (12) f(4+3);
+  h(4 + 3);
+  q(3 + 3);
+  r(3+4);
+}
diff --git a/tests/tdnl.c b/tests/tdnl.c
new file mode 100644 (file)
index 0000000..67e7ce3
--- /dev/null
@@ -0,0 +1,8 @@
+void main() {
+  unknown_tyepdef_1 td1;
+  td1.attr = (unknown_typedef_2)
+    
+
+    td2.attr;
+  foo();
+}
diff --git a/tests/tdnl.cocci b/tests/tdnl.cocci
new file mode 100644 (file)
index 0000000..c174822
--- /dev/null
@@ -0,0 +1,3 @@
+@@
+@@
+-foo();
\ No newline at end of file
diff --git a/tests/tdnl.res b/tests/tdnl.res
new file mode 100644 (file)
index 0000000..74eac56
--- /dev/null
@@ -0,0 +1,7 @@
+void main() {
+  unknown_tyepdef_1 td1;
+  td1.attr = (unknown_typedef_2)
+    
+
+    td2.attr;
+}
diff --git a/tests/twomatch.c b/tests/twomatch.c
new file mode 100644 (file)
index 0000000..0f5765a
--- /dev/null
@@ -0,0 +1,5 @@
+int main() {
+  bar(12,1);
+  xxx(12,1);
+}
+
diff --git a/tests/twomatch.cocci b/tests/twomatch.cocci
new file mode 100644 (file)
index 0000000..fe245ea
--- /dev/null
@@ -0,0 +1,16 @@
+@r@
+expression a,b,c;
+@@
+
+(
+foo(a,c);
+|
+bar(b,c);
+)
+
+@@
+expression r.a,r.b,r.c;
+@@
+
+- xxx(\(a\|b\),c);
++ yyy();
diff --git a/tests/twomatch.res b/tests/twomatch.res
new file mode 100644 (file)
index 0000000..3b8b8f3
--- /dev/null
@@ -0,0 +1,5 @@
+int main() {
+  bar(12,1);
+  yyy();
+}
+
index 91e7c61..35a7364 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright 2010, INRIA, University of Copenhagen
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
 # Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 865e0a1..462a4f0 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 666acf0..2aebdc7 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index af1d500..d8b6c79 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 8df6a32..fb2ce8d 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 61c5e69..57b1304 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 9a4a493..109a26a 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 5c31fad..cdce4ed 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index a4f12b1..b3cb00c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index e3aac33..045f17f 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index d981671..5fee114 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
@@ -23,7 +25,9 @@
 
 
 let lines =
-["Copyright 2010, INRIA, University of Copenhagen";
+["Copyright 2012, INRIA";
+"Julia Lawall, Gilles Muller";
+"Copyright 2010-2011, INRIA, University of Copenhagen";
 "Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix";
 "Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen";
 "Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix";
@@ -66,13 +70,15 @@ let do_one file =
     if Filename.check_suffix file ".pl"    then make_lines else
     if Filename.basename file = "Makefile" then make_lines else
     failwith (Printf.sprintf "unknown file type: %s" file) in
-  let _ = Sys.command (Printf.sprintf "cp %s /tmp/tmpfl" file) in
-  let o = open_out file in
+  let tmpfl = Filename.temp_file "cocci_licence" "orig" in
+  let _     = Sys.command (Printf.sprintf "cp %s %s" file tmpfl) in
+  let o     = open_out file in
   List.iter (function l -> Printf.fprintf o "%s\n" l) lines;
   Printf.fprintf o "\n";
   Printf.fprintf o "\n";
   close_out o;
-  let _ = Sys.command (Printf.sprintf "cat /tmp/tmpfl >> %s" file) in
+  let _ = Sys.command (Printf.sprintf "cat %s >> %s" tmpfl file) in
+  let _ = Sys.command (Printf.sprintf "rm -f %s" tmpfl) in
   ()
 
 (* pad's modif *)
index cfd7735..d967193 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index 98f8e8c..3eb045c 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
index f5e2196..a85cc9b 100644 (file)
@@ -1,5 +1,7 @@
 (*
- * Copyright 2010, INRIA, University of Copenhagen
+ * Copyright 2012, INRIA
+ * Julia Lawall, Gilles Muller
+ * Copyright 2010-2011, INRIA, University of Copenhagen
  * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
  * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
diff --git a/version b/version
new file mode 100644 (file)
index 0000000..5954780
--- /dev/null
+++ b/version
@@ -0,0 +1,3 @@
+1.0.0-rc11
+
+