diff options
-rw-r--r-- | CHANGES | 15 | ||||
-rw-r--r-- | doc/tex/ael.tex | 6 | ||||
-rw-r--r-- | doc/tex/channelvariables.tex | 21 | ||||
-rw-r--r-- | main/ast_expr2.c | 431 | ||||
-rw-r--r-- | main/ast_expr2.fl | 3 | ||||
-rw-r--r-- | main/ast_expr2.h | 54 | ||||
-rw-r--r-- | main/ast_expr2.y | 37 | ||||
-rw-r--r-- | main/ast_expr2f.c | 2396 | ||||
-rw-r--r-- | pbx/ael/ael-test/ael-ntest24/extensions.ael | 27 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-ntest10 | 137 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-ntest24 | 34 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-test1 | 14 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-test18 | 14 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-test19 | 14 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-test3 | 26 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-test5 | 14 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-test8 | 14 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-vtest13 | 1564 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-vtest17 | 7 |
19 files changed, 3434 insertions, 1394 deletions
@@ -167,6 +167,10 @@ CLI Changes * Added a CLI command, "devstate change", which allows you to set custom device states from the func_devstate module that provides the DEVICE_STATE() function and handling of the "Custom:" devices. + * New CLI command: "sip show sched" which shows all ast_sched entries for sip, + sorted into the different possible callbacks, with the number of entries + currently scheduled for each. Gives you a feel for how busy the sip channel + driver is. SIP changes ----------- @@ -500,6 +504,17 @@ AEL Changes first pass at conversion. * aelparse will now read extensions.conf to see if a referenced macro or context is there before issueing a warning. + * AEL parser sets a local channel variable ~~EXTEN~~, to + preserve the value of ${EXTEN} thru switch statements. + * New operator in $[...] expressions: the ~~ operator serves + as a concatenation operator. AT THE MOMENT, it is really only + necessary and useful in AEL, especially in if() expressions. + Operation: ${a} ~~ ${b| with force both a and b to strings, strip + any enclosing double-quotes, and evaluate to the value of a + concatenated with the value of b. For example if a is set to + "xyz" and b has the value "abc", then ${a} ~~ ${b| would + evaluate to xyzabc . + Call Features (res_features) Changes ------------------------------------ diff --git a/doc/tex/ael.tex b/doc/tex/ael.tex index 4d9fa2433..b76088fa0 100644 --- a/doc/tex/ael.tex +++ b/doc/tex/ael.tex @@ -38,7 +38,7 @@ AEL is really the merger of 4 different 'languages', or syntaxes: language, that AEL will compile into. \end{itemize} -Any programmer of AEL should be familiar with it's syntax, of course, +Any programmer of AEL should be familiar with its syntax, of course, as well as the Expression syntax, and the Variable syntax. @@ -114,9 +114,9 @@ the Asterisk environment! \section{Getting Started} -The AEL parser (pbx\_ael.so) is completely separate from the module +The AEL parser (res\_ael.so) is completely separate from the module that parses extensions.conf (pbx\_config.so). To use AEL, the only -thing that has to be done is the module pbx\_ael.so must be loaded by +thing that has to be done is the module res\_ael.so must be loaded by Asterisk. This will be done automatically if using 'autoload=yes' in \path{/etc/asterisk/modules.conf}. When the module is loaded, it will look for 'extensions.ael' in \path{/etc/asterisk/}. extensions.conf and diff --git a/doc/tex/channelvariables.tex b/doc/tex/channelvariables.tex index 9f1104c52..ca0acbf97 100644 --- a/doc/tex/channelvariables.tex +++ b/doc/tex/channelvariables.tex @@ -302,6 +302,27 @@ with equal precedence are grouped within \{ \} symbols. will be the result of the "evaluation" of this expression. expr3 will be the result otherwise. This operator has the lowest precedence. + + \item \verb!expr1 ~~ expr2! + + Concatenation operator. The two exprs are evaluated and + turned into strings, stripped of surrounding double quotes, + and are turned into a single string with no invtervening spaces. + This operator is new to trunk after 1.6.0; it is not needed + in existing extensions.conf code. Because of the way asterisk + evaluates ${ } and $[ ] constructs (recursively, bottom- + up), no $[] or ${} is ever present when the contents + of a ${} or $[] is evaluated. Thus, tokens are usually + already merged at evaluation time. But, in AEL, various + exprs are evaluated raw, and ${} and $[] are gathered + and treated as tokens. And in AEL, no two tokens can + sit side by side without an intervening operator. + So, in AEL, concatenation must be explicitly specified + in expressions. This new operator will play well into + future plans, where expressions ($[] constructs, and + variable references (${} constructs) are merged into a + single grammar. + \end{itemize} Parentheses are used for grouping in the usual manner. diff --git a/main/ast_expr2.c b/main/ast_expr2.c index 693a7896a..9d6bf6e72 100644 --- a/main/ast_expr2.c +++ b/main/ast_expr2.c @@ -1,7 +1,9 @@ -/* A Bison parser, made by GNU Bison 2.1a. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,10 +20,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ @@ -37,7 +47,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.1a" +#define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -81,11 +91,12 @@ TOK_DIV = 272, TOK_MULT = 273, TOK_COMPL = 274, - TOK_EQTILDE = 275, - TOK_COLON = 276, - TOK_LP = 277, - TOK_RP = 278, - TOKEN = 279 + TOK_TILDETILDE = 275, + TOK_EQTILDE = 276, + TOK_COLON = 277, + TOK_LP = 278, + TOK_RP = 279, + TOKEN = 280 }; #endif /* Tokens. */ @@ -106,11 +117,12 @@ #define TOK_DIV 272 #define TOK_MULT 273 #define TOK_COMPL 274 -#define TOK_EQTILDE 275 -#define TOK_COLON 276 -#define TOK_LP 277 -#define TOK_RP 278 -#define TOKEN 279 +#define TOK_TILDETILDE 275 +#define TOK_EQTILDE 276 +#define TOK_COLON 277 +#define TOK_LP 278 +#define TOK_RP 279 +#define TOKEN 280 @@ -403,6 +415,7 @@ static struct val *make_str __P((const char *)); static struct val *op_and __P((struct val *, struct val *)); static struct val *op_colon __P((struct val *, struct val *)); static struct val *op_eqtilde __P((struct val *, struct val *)); +static struct val *op_tildetilde __P((struct val *, struct val *)); static struct val *op_div __P((struct val *, struct val *)); static struct val *op_eq __P((struct val *, struct val *)); static struct val *op_ge __P((struct val *, struct val *)); @@ -470,13 +483,13 @@ int ast_yyerror(const char *,YYLTYPE *, struct parse_io *); #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 341 "ast_expr2.y" +#line 342 "ast_expr2.y" { struct val *val; struct expr_node *arglist; } -/* Line 198 of yacc.c. */ -#line 480 "ast_expr2.c" +/* Line 187 of yacc.c. */ +#line 493 "ast_expr2.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -498,13 +511,13 @@ typedef struct YYLTYPE /* Copy the second part of user declarations. */ -#line 346 "ast_expr2.y" +#line 347 "ast_expr2.y" extern int ast_yylex __P((YYSTYPE *, YYLTYPE *, yyscan_t)); -/* Line 221 of yacc.c. */ -#line 508 "ast_expr2.c" +/* Line 216 of yacc.c. */ +#line 521 "ast_expr2.c" #ifdef short # undef short @@ -634,8 +647,13 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# ifdef __cplusplus -extern "C" { +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif # endif # ifndef YYMALLOC # define YYMALLOC malloc @@ -651,9 +669,6 @@ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif -# ifdef __cplusplus -} -# endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ @@ -719,20 +734,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 11 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 150 +#define YYLAST 159 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 25 +#define YYNTOKENS 26 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 4 /* YYNRULES -- Number of rules. */ -#define YYNRULES 26 +#define YYNRULES 27 /* YYNRULES -- Number of states. */ -#define YYNSTATES 52 +#define YYNSTATES 54 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 279 +#define YYMAXUTOK 280 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -767,7 +782,8 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25 }; #if YYDEBUG @@ -777,30 +793,30 @@ static const yytype_uint8 yyprhs[] = { 0, 0, 3, 5, 6, 8, 12, 17, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63, - 66, 69, 73, 77, 81, 85, 89 + 66, 69, 73, 77, 81, 85, 89, 95 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 26, 0, -1, 28, -1, -1, 28, -1, 27, 3, - 28, -1, 24, 22, 27, 23, -1, 24, -1, 22, - 28, 23, -1, 28, 6, 28, -1, 28, 7, 28, - -1, 28, 13, 28, -1, 28, 12, 28, -1, 28, - 11, 28, -1, 28, 10, 28, -1, 28, 9, 28, - -1, 28, 8, 28, -1, 28, 15, 28, -1, 28, - 14, 28, -1, 14, 28, -1, 19, 28, -1, 28, - 18, 28, -1, 28, 17, 28, -1, 28, 16, 28, - -1, 28, 21, 28, -1, 28, 20, 28, -1, 28, - 5, 28, 4, 28, -1 + 27, 0, -1, 29, -1, -1, 29, -1, 28, 3, + 29, -1, 25, 23, 28, 24, -1, 25, -1, 23, + 29, 24, -1, 29, 6, 29, -1, 29, 7, 29, + -1, 29, 13, 29, -1, 29, 12, 29, -1, 29, + 11, 29, -1, 29, 10, 29, -1, 29, 9, 29, + -1, 29, 8, 29, -1, 29, 15, 29, -1, 29, + 14, 29, -1, 14, 29, -1, 19, 29, -1, 29, + 18, 29, -1, 29, 17, 29, -1, 29, 16, 29, + -1, 29, 22, 29, -1, 29, 21, 29, -1, 29, + 5, 29, 4, 29, -1, 29, 20, 29, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 372, 372, 380, 387, 388, 397, 403, 404, 408, - 412, 416, 420, 424, 428, 432, 436, 440, 444, 448, - 452, 456, 460, 464, 468, 472, 476 + 0, 371, 371, 379, 386, 387, 396, 402, 403, 407, + 411, 415, 419, 423, 427, 431, 435, 439, 443, 447, + 451, 455, 459, 463, 467, 471, 475, 480 }; #endif @@ -812,8 +828,8 @@ static const char *const yytname[] = "$end", "error", "$undefined", "TOK_COMMA", "TOK_COLONCOLON", "TOK_COND", "TOK_OR", "TOK_AND", "TOK_NE", "TOK_LE", "TOK_GE", "TOK_LT", "TOK_GT", "TOK_EQ", "TOK_MINUS", "TOK_PLUS", "TOK_MOD", "TOK_DIV", - "TOK_MULT", "TOK_COMPL", "TOK_EQTILDE", "TOK_COLON", "TOK_LP", "TOK_RP", - "TOKEN", "$accept", "start", "arglist", "expr", 0 + "TOK_MULT", "TOK_COMPL", "TOK_TILDETILDE", "TOK_EQTILDE", "TOK_COLON", + "TOK_LP", "TOK_RP", "TOKEN", "$accept", "start", "arglist", "expr", 0 }; #endif @@ -824,16 +840,16 @@ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279 + 275, 276, 277, 278, 279, 280 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 25, 26, 26, 27, 27, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28 + 0, 26, 27, 27, 28, 28, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -841,7 +857,7 @@ static const yytype_uint8 yyr2[] = { 0, 2, 1, 0, 1, 3, 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 3, 3, 3, 3, 3, 5 + 2, 3, 3, 3, 3, 3, 5, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -851,16 +867,16 @@ static const yytype_uint8 yydefact[] = { 3, 0, 0, 0, 7, 0, 2, 19, 20, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, - 4, 0, 9, 10, 16, 15, 14, 13, 12, 11, - 18, 17, 23, 22, 21, 25, 24, 0, 6, 0, - 5, 26 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 0, 4, 0, 9, 10, 16, 15, 14, 13, 12, + 11, 18, 17, 23, 22, 21, 27, 25, 24, 0, + 6, 0, 5, 26 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 5, 29, 6 + -1, 5, 30, 6 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -868,12 +884,12 @@ static const yytype_int8 yydefgoto[] = #define YYPACT_NINF -18 static const yytype_int16 yypact[] = { - 112, 112, 112, 112, -16, 5, 62, -17, -17, 24, - 112, -18, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, -18, 4, - 62, 45, 93, 107, 123, 123, 123, 123, 123, 123, - 129, 129, -17, -17, -17, -18, -18, 112, -18, 112, - 62, 78 + 118, 118, 118, 118, -15, 6, 65, -17, -17, 25, + 118, -18, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, -18, + 4, 65, 47, 98, 113, 130, 130, 130, 130, 130, + 130, 137, 137, -17, -17, -17, -18, -18, -18, 118, + -18, 118, 65, 82 }; /* YYPGOTO[NTERM-NUM]. */ @@ -889,54 +905,54 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 7, 8, 9, 26, 27, 11, 10, 47, 0, 30, - 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 48, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 0, 26, 27, 50, 28, 51, 49, + 7, 8, 9, 26, 27, 28, 11, 49, 10, 31, + 0, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 50, 0, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 0, 26, 27, 28, 52, 29, + 53, 51, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 0, 26, 27, 28, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 0, 26, 27, 12, 13, 14, + 22, 23, 24, 25, 0, 26, 27, 28, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 0, 26, 27, 13, 14, 15, 16, 17, 18, + 25, 0, 26, 27, 28, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 26, 27, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 0, 26, 27, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 1, 26, 27, 0, - 0, 2, 0, 0, 3, 0, 4, 21, 22, 23, - 24, 25, 0, 26, 27, 23, 24, 25, 0, 26, - 27 + 28, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 1, 26, 27, 28, 0, 2, 0, 0, + 0, 3, 0, 4, 21, 22, 23, 24, 25, 0, + 26, 27, 28, 23, 24, 25, 0, 26, 27, 28 }; static const yytype_int8 yycheck[] = { - 1, 2, 3, 20, 21, 0, 22, 3, -1, 10, + 1, 2, 3, 20, 21, 22, 0, 3, 23, 10, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 23, -1, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, -1, 20, 21, 47, 23, 49, 4, + 21, 22, 23, 24, 25, 26, 27, 28, 24, -1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, -1, 20, 21, 5, 6, 7, + 15, 16, 17, 18, -1, 20, 21, 22, 49, 24, + 51, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, -1, 20, 21, 22, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, -1, 20, 21, 22, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, -1, 20, 21, 6, 7, 8, 9, 10, 11, + 18, -1, 20, 21, 22, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, -1, 20, 21, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, -1, 20, 21, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 14, 20, 21, -1, - -1, 19, -1, -1, 22, -1, 24, 14, 15, 16, - 17, 18, -1, 20, 21, 16, 17, 18, -1, 20, - 21 + 22, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 14, 20, 21, 22, -1, 19, -1, -1, + -1, 23, -1, 25, 14, 15, 16, 17, 18, -1, + 20, 21, 22, 16, 17, 18, -1, 20, 21, 22 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 14, 19, 22, 24, 26, 28, 28, 28, 28, - 22, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 20, 21, 23, 27, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 3, 23, 4, - 28, 28 + 0, 14, 19, 23, 25, 27, 29, 29, 29, 29, + 23, 0, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, + 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 3, + 24, 4, 29, 29 }; #define yyerrok (yyerrstatus = 0) @@ -1063,14 +1079,14 @@ do { \ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_value_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, const YYLTYPE * const yylocationp) +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) FILE *yyoutput; int yytype; - const YYSTYPE * const yyvaluep; - const YYLTYPE * const yylocationp; + YYSTYPE const * const yyvaluep; + YYLTYPE const * const yylocationp; #endif { if (!yyvaluep) @@ -1097,14 +1113,14 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, const YYLTYPE * const yylocationp) +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) FILE *yyoutput; int yytype; - const YYSTYPE * const yyvaluep; - const YYLTYPE * const yylocationp; + YYSTYPE const * const yyvaluep; + YYLTYPE const * const yylocationp; #endif { if (yytype < YYNTOKENS) @@ -1157,8 +1173,7 @@ static void yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) #else static void -yy_reduce_print (yyvsp, yylsp, yyrule - ) +yy_reduce_print (yyvsp, yylsp, yyrule) YYSTYPE *yyvsp; YYLTYPE *yylsp; int yyrule; @@ -1281,7 +1296,7 @@ yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - size_t yyn = 0; + YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) @@ -1328,7 +1343,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar) { int yyn = yypact[yystate]; - if (! (YYPACT_NINF < yyn && yyn < YYLAST)) + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) return 0; else { @@ -1366,7 +1381,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar) int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn; + int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 1; @@ -1454,114 +1469,119 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) switch (yytype) { case 4: /* "TOK_COLONCOLON" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1460 "ast_expr2.c" +#line 1475 "ast_expr2.c" break; case 5: /* "TOK_COND" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1465 "ast_expr2.c" +#line 1480 "ast_expr2.c" break; case 6: /* "TOK_OR" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1470 "ast_expr2.c" +#line 1485 "ast_expr2.c" break; case 7: /* "TOK_AND" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1475 "ast_expr2.c" +#line 1490 "ast_expr2.c" break; case 8: /* "TOK_NE" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1480 "ast_expr2.c" +#line 1495 "ast_expr2.c" break; case 9: /* "TOK_LE" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1485 "ast_expr2.c" +#line 1500 "ast_expr2.c" break; case 10: /* "TOK_GE" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1490 "ast_expr2.c" +#line 1505 "ast_expr2.c" break; case 11: /* "TOK_LT" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1495 "ast_expr2.c" +#line 1510 "ast_expr2.c" break; case 12: /* "TOK_GT" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1500 "ast_expr2.c" +#line 1515 "ast_expr2.c" break; case 13: /* "TOK_EQ" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1505 "ast_expr2.c" +#line 1520 "ast_expr2.c" break; case 14: /* "TOK_MINUS" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1510 "ast_expr2.c" +#line 1525 "ast_expr2.c" break; case 15: /* "TOK_PLUS" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1515 "ast_expr2.c" +#line 1530 "ast_expr2.c" break; case 16: /* "TOK_MOD" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1520 "ast_expr2.c" +#line 1535 "ast_expr2.c" break; case 17: /* "TOK_DIV" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1525 "ast_expr2.c" +#line 1540 "ast_expr2.c" break; case 18: /* "TOK_MULT" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1530 "ast_expr2.c" +#line 1545 "ast_expr2.c" break; case 19: /* "TOK_COMPL" */ -#line 366 "ast_expr2.y" +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1535 "ast_expr2.c" +#line 1550 "ast_expr2.c" break; - case 20: /* "TOK_EQTILDE" */ -#line 366 "ast_expr2.y" + case 20: /* "TOK_TILDETILDE" */ +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1540 "ast_expr2.c" +#line 1555 "ast_expr2.c" break; - case 21: /* "TOK_COLON" */ -#line 366 "ast_expr2.y" + case 21: /* "TOK_EQTILDE" */ +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1545 "ast_expr2.c" +#line 1560 "ast_expr2.c" break; - case 22: /* "TOK_LP" */ -#line 366 "ast_expr2.y" + case 22: /* "TOK_COLON" */ +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1550 "ast_expr2.c" +#line 1565 "ast_expr2.c" break; - case 23: /* "TOK_RP" */ -#line 366 "ast_expr2.y" + case 23: /* "TOK_LP" */ +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1555 "ast_expr2.c" +#line 1570 "ast_expr2.c" break; - case 24: /* "TOKEN" */ -#line 366 "ast_expr2.y" + case 24: /* "TOK_RP" */ +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1560 "ast_expr2.c" +#line 1575 "ast_expr2.c" break; - case 28: /* "expr" */ -#line 366 "ast_expr2.y" + case 25: /* "TOKEN" */ +#line 365 "ast_expr2.y" { free_value((yyvaluep->val)); }; -#line 1565 "ast_expr2.c" +#line 1580 "ast_expr2.c" + break; + case 29: /* "expr" */ +#line 365 "ast_expr2.y" + { free_value((yyvaluep->val)); }; +#line 1585 "ast_expr2.c" break; default: @@ -1884,7 +1904,7 @@ yyreduce: switch (yyn) { case 2: -#line 372 "ast_expr2.y" +#line 371 "ast_expr2.y" { ((struct parse_io *)parseio)->val = (struct val *)calloc(sizeof(struct val),1); ((struct parse_io *)parseio)->val->type = (yyvsp[(1) - (1)].val)->type; if( (yyvsp[(1) - (1)].val)->type == AST_EXPR_number ) @@ -1896,7 +1916,7 @@ yyreduce: break; case 3: -#line 380 "ast_expr2.y" +#line 379 "ast_expr2.y" {/* nothing */ ((struct parse_io *)parseio)->val = (struct val *)calloc(sizeof(struct val),1); ((struct parse_io *)parseio)->val->type = AST_EXPR_string; ((struct parse_io *)parseio)->val->u.s = strdup(""); @@ -1904,12 +1924,12 @@ yyreduce: break; case 4: -#line 387 "ast_expr2.y" +#line 386 "ast_expr2.y" { (yyval.arglist) = alloc_expr_node(AST_EXPR_NODE_VAL); (yyval.arglist)->val = (yyvsp[(1) - (1)].val);;} break; case 5: -#line 388 "ast_expr2.y" +#line 387 "ast_expr2.y" {struct expr_node *x = alloc_expr_node(AST_EXPR_NODE_VAL); struct expr_node *t; DESTROY((yyvsp[(2) - (3)].val)); @@ -1919,7 +1939,7 @@ yyreduce: break; case 6: -#line 397 "ast_expr2.y" +#line 396 "ast_expr2.y" { (yyval.val) = op_func((yyvsp[(1) - (4)].val),(yyvsp[(3) - (4)].arglist), ((struct parse_io *)parseio)->chan); DESTROY((yyvsp[(2) - (4)].val)); DESTROY((yyvsp[(4) - (4)].val)); @@ -1929,12 +1949,12 @@ yyreduce: break; case 7: -#line 403 "ast_expr2.y" +#line 402 "ast_expr2.y" {(yyval.val) = (yyvsp[(1) - (1)].val);;} break; case 8: -#line 404 "ast_expr2.y" +#line 403 "ast_expr2.y" { (yyval.val) = (yyvsp[(2) - (3)].val); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; (yyloc).first_line=0; (yyloc).last_line=0; @@ -1942,7 +1962,7 @@ yyreduce: break; case 9: -#line 408 "ast_expr2.y" +#line 407 "ast_expr2.y" { (yyval.val) = op_or ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -1950,7 +1970,7 @@ yyreduce: break; case 10: -#line 412 "ast_expr2.y" +#line 411 "ast_expr2.y" { (yyval.val) = op_and ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -1958,7 +1978,7 @@ yyreduce: break; case 11: -#line 416 "ast_expr2.y" +#line 415 "ast_expr2.y" { (yyval.val) = op_eq ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -1966,7 +1986,7 @@ yyreduce: break; case 12: -#line 420 "ast_expr2.y" +#line 419 "ast_expr2.y" { (yyval.val) = op_gt ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -1974,7 +1994,7 @@ yyreduce: break; case 13: -#line 424 "ast_expr2.y" +#line 423 "ast_expr2.y" { (yyval.val) = op_lt ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -1982,7 +2002,7 @@ yyreduce: break; case 14: -#line 428 "ast_expr2.y" +#line 427 "ast_expr2.y" { (yyval.val) = op_ge ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -1990,7 +2010,7 @@ yyreduce: break; case 15: -#line 432 "ast_expr2.y" +#line 431 "ast_expr2.y" { (yyval.val) = op_le ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -1998,7 +2018,7 @@ yyreduce: break; case 16: -#line 436 "ast_expr2.y" +#line 435 "ast_expr2.y" { (yyval.val) = op_ne ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2006,7 +2026,7 @@ yyreduce: break; case 17: -#line 440 "ast_expr2.y" +#line 439 "ast_expr2.y" { (yyval.val) = op_plus ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2014,7 +2034,7 @@ yyreduce: break; case 18: -#line 444 "ast_expr2.y" +#line 443 "ast_expr2.y" { (yyval.val) = op_minus ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2022,7 +2042,7 @@ yyreduce: break; case 19: -#line 448 "ast_expr2.y" +#line 447 "ast_expr2.y" { (yyval.val) = op_negate ((yyvsp[(2) - (2)].val)); DESTROY((yyvsp[(1) - (2)].val)); (yyloc).first_column = (yylsp[(1) - (2)]).first_column; (yyloc).last_column = (yylsp[(2) - (2)]).last_column; @@ -2030,7 +2050,7 @@ yyreduce: break; case 20: -#line 452 "ast_expr2.y" +#line 451 "ast_expr2.y" { (yyval.val) = op_compl ((yyvsp[(2) - (2)].val)); DESTROY((yyvsp[(1) - (2)].val)); (yyloc).first_column = (yylsp[(1) - (2)]).first_column; (yyloc).last_column = (yylsp[(2) - (2)]).last_column; @@ -2038,7 +2058,7 @@ yyreduce: break; case 21: -#line 456 "ast_expr2.y" +#line 455 "ast_expr2.y" { (yyval.val) = op_times ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2046,7 +2066,7 @@ yyreduce: break; case 22: -#line 460 "ast_expr2.y" +#line 459 "ast_expr2.y" { (yyval.val) = op_div ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2054,7 +2074,7 @@ yyreduce: break; case 23: -#line 464 "ast_expr2.y" +#line 463 "ast_expr2.y" { (yyval.val) = op_rem ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2062,7 +2082,7 @@ yyreduce: break; case 24: -#line 468 "ast_expr2.y" +#line 467 "ast_expr2.y" { (yyval.val) = op_colon ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2070,7 +2090,7 @@ yyreduce: break; case 25: -#line 472 "ast_expr2.y" +#line 471 "ast_expr2.y" { (yyval.val) = op_eqtilde ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); DESTROY((yyvsp[(2) - (3)].val)); (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; @@ -2078,7 +2098,7 @@ yyreduce: break; case 26: -#line 476 "ast_expr2.y" +#line 475 "ast_expr2.y" { (yyval.val) = op_cond ((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].val)); DESTROY((yyvsp[(2) - (5)].val)); DESTROY((yyvsp[(4) - (5)].val)); @@ -2086,9 +2106,17 @@ yyreduce: (yyloc).first_line=0; (yyloc).last_line=0;;} break; + case 27: +#line 480 "ast_expr2.y" + { (yyval.val) = op_tildetilde ((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); + DESTROY((yyvsp[(2) - (3)].val)); + (yyloc).first_column = (yylsp[(1) - (3)]).first_column; (yyloc).last_column = (yylsp[(3) - (3)]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} + break; + -/* Line 1270 of yacc.c. */ -#line 2092 "ast_expr2.c" +/* Line 1267 of yacc.c. */ +#line 2120 "ast_expr2.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2303,11 +2331,12 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - return yyresult; + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 483 "ast_expr2.y" +#line 486 "ast_expr2.y" static struct expr_node *alloc_expr_node(enum node_type nt) @@ -3446,3 +3475,29 @@ op_eqtilde (struct val *a, struct val *b) return v; } +static struct val * /* this is a string concat operator */ +op_tildetilde (struct val *a, struct val *b) +{ + struct val *v; + char *vs; + + /* coerce to both arguments to strings */ + to_string(a); + to_string(b); + /* strip double quotes from both -- */ + strip_quotes(a); + strip_quotes(b); + + vs = malloc(strlen(a->u.s)+strlen(b->u.s)+1); + strcpy(vs,a->u.s); + strcat(vs,b->u.s); + + v = make_str(vs); + + /* free arguments */ + free_value(a); + free_value(b); + + return v; +} + diff --git a/main/ast_expr2.fl b/main/ast_expr2.fl index 723eebf5a..c926913e8 100644 --- a/main/ast_expr2.fl +++ b/main/ast_expr2.fl @@ -133,6 +133,7 @@ static char *expr2_token_subst(const char *mess); \&\& { SET_COLUMNS; SET_STRING; return TOK_AND;} \=\= { SET_COLUMNS; SET_STRING; return TOK_EQ;} \=~ { SET_COLUMNS; SET_STRING; return TOK_EQTILDE;} +\~~ { SET_COLUMNS; SET_STRING; return TOK_TILDETILDE;} \> { SET_COLUMNS; SET_STRING; return TOK_GT;} \< { SET_COLUMNS; SET_STRING; return TOK_LT;} \>\= { SET_COLUMNS; SET_STRING; return TOK_GE;} @@ -173,7 +174,7 @@ static char *expr2_token_subst(const char *mess); return TOKEN; } -([a-zA-Z0-9\.';\\_^$#@]|[\x80-\xff])+ { +([a-zA-Z0-9\.';\\_^#@]|[\x80-\xff]|($[^{]))+ { SET_COLUMNS; SET_STRING; return TOKEN; diff --git a/main/ast_expr2.h b/main/ast_expr2.h index cd2077149..d2a560aa1 100644 --- a/main/ast_expr2.h +++ b/main/ast_expr2.h @@ -1,7 +1,9 @@ -/* A Bison parser, made by GNU Bison 2.1a. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,10 +20,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ /* Tokens. */ #ifndef YYTOKENTYPE @@ -46,11 +56,12 @@ TOK_DIV = 272, TOK_MULT = 273, TOK_COMPL = 274, - TOK_EQTILDE = 275, - TOK_COLON = 276, - TOK_LP = 277, - TOK_RP = 278, - TOKEN = 279 + TOK_TILDETILDE = 275, + TOK_EQTILDE = 276, + TOK_COLON = 277, + TOK_LP = 278, + TOK_RP = 279, + TOKEN = 280 }; #endif /* Tokens. */ @@ -71,24 +82,25 @@ #define TOK_DIV 272 #define TOK_MULT 273 #define TOK_COMPL 274 -#define TOK_EQTILDE 275 -#define TOK_COLON 276 -#define TOK_LP 277 -#define TOK_RP 278 -#define TOKEN 279 +#define TOK_TILDETILDE 275 +#define TOK_EQTILDE 276 +#define TOK_COLON 277 +#define TOK_LP 278 +#define TOK_RP 279 +#define TOKEN 280 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 341 "ast_expr2.y" +#line 342 "ast_expr2.y" { struct val *val; struct expr_node *arglist; } -/* Line 1536 of yacc.c. */ -#line 92 "ast_expr2.h" +/* Line 1489 of yacc.c. */ +#line 104 "ast_expr2.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -111,5 +123,3 @@ typedef struct YYLTYPE #endif - - diff --git a/main/ast_expr2.y b/main/ast_expr2.y index 7eba6d165..76fe16005 100644 --- a/main/ast_expr2.y +++ b/main/ast_expr2.y @@ -284,6 +284,7 @@ static struct val *make_str __P((const char *)); static struct val *op_and __P((struct val *, struct val *)); static struct val *op_colon __P((struct val *, struct val *)); static struct val *op_eqtilde __P((struct val *, struct val *)); +static struct val *op_tildetilde __P((struct val *, struct val *)); static struct val *op_div __P((struct val *, struct val *)); static struct val *op_eq __P((struct val *, struct val *)); static struct val *op_ge __P((struct val *, struct val *)); @@ -354,18 +355,16 @@ extern int ast_yylex __P((YYSTYPE *, YYLTYPE *, yyscan_t)); %left <val> TOK_PLUS TOK_MINUS %left <val> TOK_MULT TOK_DIV TOK_MOD %right <val> TOK_COMPL -%left <val> TOK_COLON TOK_EQTILDE +%left <val> TOK_COLON TOK_EQTILDE TOK_TILDETILDE %left <val> TOK_RP TOK_LP - %token <val> TOKEN %type <arglist> arglist %type <val> start expr - %destructor { free_value($$); } expr TOKEN TOK_COND TOK_COLONCOLON TOK_OR TOK_AND TOK_EQ TOK_GT TOK_LT TOK_GE TOK_LE TOK_NE TOK_PLUS TOK_MINUS TOK_MULT TOK_DIV TOK_MOD TOK_COMPL TOK_COLON TOK_EQTILDE - TOK_RP TOK_LP + TOK_RP TOK_LP TOK_TILDETILDE %% @@ -478,6 +477,10 @@ expr: DESTROY($4); @$.first_column = @1.first_column; @$.last_column = @3.last_column; @$.first_line=0; @$.last_line=0;} + | expr TOK_TILDETILDE expr { $$ = op_tildetilde ($1, $3); + DESTROY($2); + @$.first_column = @1.first_column; @$.last_column = @3.last_column; + @$.first_line=0; @$.last_line=0;} ; %% @@ -1617,3 +1620,29 @@ op_eqtilde (struct val *a, struct val *b) return v; } + +static struct val * /* this is a string concat operator */ +op_tildetilde (struct val *a, struct val *b) +{ + struct val *v; + char *vs; + + /* coerce to both arguments to strings */ + to_string(a); + to_string(b); + /* strip double quotes from both -- */ + strip_quotes(a); + strip_quotes(b); + + vs = malloc(strlen(a->u.s)+strlen(b->u.s)+1); + strcpy(vs,a->u.s); + strcat(vs,b->u.s); + + v = make_str(vs); + + /* free arguments */ + free_value(a); + free_value(b); + + return v; +} diff --git a/main/ast_expr2f.c b/main/ast_expr2f.c index 19aa0f6d6..8d88ec008 100644 --- a/main/ast_expr2f.c +++ b/main/ast_expr2f.c @@ -339,6 +339,1905 @@ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r +static yyconst flex_int16_t yy_nxt[][256] = + { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 + }, + + { + 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 10, 8, 8, 9, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 9, 11, 12, 13, 14, 15, 16, 13, + + 17, 18, 19, 20, 21, 22, 13, 23, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 25, 13, + 26, 27, 28, 29, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 8, 13, 8, 13, 13, 8, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 8, 30, 8, 31, 8, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13 + }, + + { + 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 10, 8, 8, 9, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 9, 11, 12, 13, 14, 15, 16, 13, + 17, 18, 19, 20, 21, 22, 13, 23, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 25, 13, + 26, 27, 28, 29, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 8, 13, 8, 13, 13, 8, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 8, 30, 8, 31, 8, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13 + }, + + { + 7, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + + 32, 32, 32, 33, 32, 34, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32 + }, + + { + 7, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 33, 32, 34, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32 + + }, + + { + 7, 35, 35, 35, 35, 35, 35, 35, 35, 36, + 36, 35, 35, 36, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 36, 36, 35, 35, 37, 36, 36, 35, + 36, 36, 36, 36, 35, 36, 35, 36, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 36, 35, + 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 36, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35 + }, + + { + 7, 35, 35, 35, 35, 35, 35, 35, 35, 36, + 36, 35, 35, 36, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 36, 36, 35, 35, 37, 36, 36, 35, + + 36, 36, 36, 36, 35, 36, 35, 36, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 36, 35, + 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 36, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35 + }, + + { + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7 + }, + + { + 7, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8 + }, + + { + 7, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9 + + }, + + { + 7, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10 + }, + + { + 7, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, 38, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, + -11, -11, -11, -11, -11, -11 + }, + + { + 7, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 40, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39 + }, + + { + 7, -13, -13, -13, -13, -13, -13, -13, -13, -13, + -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, + + -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, + -13, -13, -13, -13, -13, 41, 42, -13, -13, 41, + -13, -13, -13, -13, -13, -13, 41, -13, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, -13, 41, + -13, -13, -13, -13, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, -13, 41, -13, 41, 41, -13, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, -13, -13, -13, -13, -13, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + }, + + { + 7, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 43, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + + }, + + { + 7, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15, -15, -15, -15, -15, -15 + }, + + { + 7, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, 44, -16, + + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16 + }, + + { + 7, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17 + }, + + { + 7, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18 + }, + + { + 7, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, + -19, -19, -19, -19, -19, -19 + + }, + + { + 7, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20 + }, + + { + 7, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + + -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, + -21, -21, -21, -21, -21, -21 + }, + + { + 7, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22 + }, + + { + 7, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23 + }, + + { + 7, -24, -24, -24, -24, -24, -24, -24, -24, -24, + -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, + -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, + -24, -24, -24, -24, -24, 41, 42, -24, -24, 41, + -24, -24, -24, -24, -24, -24, 45, -24, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, -24, 41, + + -24, -24, -24, -24, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, -24, 41, -24, 41, 41, -24, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, -24, -24, -24, -24, -24, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + + }, + + { + 7, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, 47, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25 + }, + + { + 7, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, 48, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26 + }, + + { + 7, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, 49, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, 50, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27 + }, + + { + 7, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, 51, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, + -28, -28, -28, -28, -28, -28 + }, + + { + 7, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29 + + }, + + { + 7, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, 52, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30 + }, + + { + 7, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, 53, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + + -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, + -31, -31, -31, -31, -31, -31 + }, + + { + 7, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 55, 54, 56, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54 + }, + + { + 7, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + -33, -33, -33, -33, -33, -33 + }, + + { + 7, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34 + + }, + + { + 7, 57, 57, 57, 57, 57, 57, 57, 57, -35, + -35, 57, 57, -35, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, -35, -35, 57, 57, -35, -35, -35, 57, + -35, -35, -35, -35, 57, -35, 57, -35, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, -35, 57, + -35, -35, -35, -35, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, -35, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57 + }, + + { + 7, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36 + }, + + { + 7, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, 58, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37 + }, + + { + 7, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38 + }, + + { + 7, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 40, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39 + + }, + + { + 7, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40 + }, + + { + 7, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41, -41, -41, -41, -41, 41, 42, -41, -41, 41, + + -41, -41, -41, -41, -41, -41, 41, -41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, -41, 41, + -41, -41, -41, -41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, -41, 41, -41, 41, 41, -41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, -41, -41, -41, -41, -41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + }, + + { + 7, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, -42, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + }, + + { + 7, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43 + }, + + { + 7, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44 + + }, + + { + 7, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45, -45, -45, -45, -45, 41, 42, -45, -45, 41, + -45, -45, -45, -45, -45, -45, 41, -45, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, -45, 41, + -45, -45, -45, -45, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, -45, 41, -45, 41, 41, -45, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, -45, -45, -45, -45, -45, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + }, + + { + 7, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, 41, 42, -46, -46, 41, + + -46, -46, -46, -46, -46, -46, 45, -46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, -46, 41, + -46, -46, -46, -46, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, -46, 41, -46, 41, 41, -46, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, -46, -46, -46, -46, -46, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + }, + + { + 7, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47 + }, + + { + 7, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48 + }, + + { + 7, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49 + + }, + + { + 7, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50 + }, + + { + 7, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + + -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, + -51, -51, -51, -51, -51, -51 + }, + + { + 7, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52 + }, + + { + 7, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53 + }, + + { + 7, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 55, 54, 56, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54 + + }, + + { + 7, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55 + }, + + { + 7, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56 + }, + + { + 7, 57, 57, 57, 57, 57, 57, 57, 57, -57, + -57, 57, 57, -57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, -57, -57, 57, 57, -57, -57, -57, 57, + -57, -57, -57, -57, 57, -57, 57, -57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, -57, 57, + -57, -57, -57, -57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, -57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57 + }, + + { + 7, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58 + }, + + { + 7, -59, -59, -59, -59, -59, -59, -59, -59, -59, + -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, + -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, + -59, -59, -59, -59, -59, 41, 42, -59, -59, 41, + -59, -59, -59, -59, -59, -59, 41, -59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, -59, 41, + + -59, -59, -59, -59, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, -59, 41, -59, 41, 41, -59, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, -59, -59, -59, -59, -59, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41 + + }, + + } ; static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); @@ -356,8 +2255,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 36 -#define YY_END_OF_BUFFER 37 +#define YY_NUM_RULES 37 +#define YY_END_OF_BUFFER 38 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -365,113 +2264,24 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[58] = - { 0, - 0, 0, 0, 0, 33, 33, 37, 36, 26, 28, - 20, 36, 30, 30, 18, 2, 23, 24, 16, 13, - 14, 15, 17, 29, 21, 9, 3, 8, 19, 1, - 36, 32, 31, 33, 34, 34, 12, 0, 27, 30, - 25, 5, 30, 29, 22, 11, 6, 7, 10, 4, - 0, 32, 31, 33, 35, 29, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 4, 5, 6, 7, 8, 9, 6, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 19, 6, 20, - 21, 22, 23, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 1, 6, 1, 6, 6, 1, 6, 6, 6, 6, - - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 24, 25, 26, 27, 1, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28 - } ; - -static yyconst flex_int32_t yy_meta[29] = +static yyconst flex_int16_t yy_accept[60] = { 0, - 1, 2, 2, 2, 1, 3, 4, 2, 2, 2, - 2, 2, 2, 1, 2, 3, 2, 3, 2, 2, - 2, 2, 2, 1, 2, 1, 1, 3 + 0, 0, 0, 0, 34, 34, 38, 37, 27, 29, + 21, 37, 31, 37, 19, 2, 24, 25, 17, 14, + 15, 16, 18, 30, 22, 10, 3, 9, 20, 1, + 37, 37, 33, 32, 34, 35, 35, 13, 0, 28, + 31, 0, 26, 5, 31, 30, 23, 12, 6, 7, + 11, 4, 8, 0, 33, 32, 34, 36, 30 } ; -static yyconst flex_int16_t yy_base[64] = +static yyconst yy_state_type yy_NUL_trans[60] = { 0, - 0, 0, 5, 6, 32, 60, 64, 110, 110, 110, - 42, 57, 0, 33, 110, 46, 110, 110, 110, 110, - 110, 110, 110, 18, 35, 32, 14, 31, 110, 26, - 16, 110, 110, 0, 110, 25, 110, 42, 110, 0, - 110, 110, 26, 0, 110, 110, 110, 110, 110, 110, - 19, 110, 110, 0, 110, 0, 110, 88, 92, 96, - 98, 102, 106 - } ; - -static yyconst flex_int16_t yy_def[64] = - { 0, - 57, 1, 58, 58, 59, 59, 57, 57, 57, 57, - 57, 60, 61, 61, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 61, 57, 57, 57, 57, 57, 57, - 62, 57, 57, 63, 57, 57, 57, 60, 57, 61, - 57, 57, 61, 24, 57, 57, 57, 57, 57, 57, - 62, 57, 57, 63, 57, 43, 0, 57, 57, 57, - 57, 57, 57 - } ; - -static yyconst flex_int16_t yy_nxt[139] = - { 0, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 13, 23, 24, 25, 26, - 27, 28, 29, 8, 30, 8, 8, 13, 32, 32, - 33, 33, 34, 43, 47, 44, 34, 34, 36, 52, - 48, 53, 52, 56, 53, 34, 39, 34, 55, 34, - 50, 49, 46, 45, 42, 34, 41, 34, 34, 34, - 34, 39, 37, 57, 34, 34, 36, 57, 57, 57, - 57, 57, 57, 34, 57, 34, 57, 34, 57, 57, - 57, 57, 57, 34, 57, 34, 34, 34, 31, 31, - 31, 31, 35, 35, 35, 35, 38, 38, 38, 38, - - 40, 40, 51, 51, 51, 51, 54, 57, 54, 7, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57 - } ; - -static yyconst flex_int16_t yy_chk[139] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, - 3, 4, 5, 24, 27, 24, 5, 5, 5, 31, - 27, 31, 51, 43, 51, 5, 38, 5, 36, 5, - 30, 28, 26, 25, 16, 5, 14, 5, 5, 5, - 6, 12, 11, 7, 6, 6, 6, 0, 0, 0, - 0, 0, 0, 6, 0, 6, 0, 6, 0, 0, - 0, 0, 0, 6, 0, 6, 6, 6, 58, 58, - 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, - - 61, 61, 62, 62, 62, 62, 63, 0, 63, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57 + 8, 8, 32, 32, 35, 35, 0, 0, 0, 0, + 0, 39, 0, 41, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 0, 0, 57, 0, 0, 0, 39, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 57, 0, 0 } ; /* The intent behind this definition is that it'll catch @@ -596,7 +2406,7 @@ int ast_yyget_column(yyscan_t yyscanner); static int curlycount = 0; static char *expr2_token_subst(const char *mess); -#line 600 "ast_expr2f.c" +#line 2410 "ast_expr2f.c" #define INITIAL 0 #define var 1 @@ -747,33 +2557,17 @@ static int input (yyscan_t yyscanner ); */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + errno=0; \ + while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \ + { \ + if( errno != EINTR) \ { \ - int c = '*'; \ - size_t n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ + break; \ } \ - else \ - { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - }\ + clearerr(yyin); \ + }\ \ #endif @@ -804,9 +2598,11 @@ static int input (yyscan_t yyscanner ); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int ast_yylex (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner); +extern int ast_yylex \ + (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner); -#define YY_DECL int ast_yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner) +#define YY_DECL int ast_yylex \ + (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng @@ -836,7 +2632,7 @@ YY_DECL #line 127 "ast_expr2.fl" -#line 840 "ast_expr2f.c" +#line 2636 "ast_expr2f.c" yylval = yylval_param; @@ -888,26 +2684,18 @@ YY_DECL yy_current_state = yyg->yy_start; yy_match: - do + while ( (yy_current_state = yy_nxt[yy_current_state][ YY_SC_TO_UI(*yy_cp) ]) > 0 ) { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 58 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; } - while ( yy_current_state != 57 ); - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; + + yy_current_state = -yy_current_state; yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -921,7 +2709,7 @@ do_action: /* This label is used only to access EOF actions. */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; - yy_cp = yyg->yy_last_accepting_cpos; + yy_cp = yyg->yy_last_accepting_cpos + 1; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; @@ -963,91 +2751,96 @@ YY_RULE_SETUP case 8: YY_RULE_SETUP #line 136 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_GT;} +{ SET_COLUMNS; SET_STRING; return TOK_TILDETILDE;} YY_BREAK case 9: YY_RULE_SETUP #line 137 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_LT;} +{ SET_COLUMNS; SET_STRING; return TOK_GT;} YY_BREAK case 10: YY_RULE_SETUP #line 138 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_GE;} +{ SET_COLUMNS; SET_STRING; return TOK_LT;} YY_BREAK case 11: YY_RULE_SETUP #line 139 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_LE;} +{ SET_COLUMNS; SET_STRING; return TOK_GE;} YY_BREAK case 12: YY_RULE_SETUP #line 140 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_NE;} +{ SET_COLUMNS; SET_STRING; return TOK_LE;} YY_BREAK case 13: YY_RULE_SETUP #line 141 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_PLUS;} +{ SET_COLUMNS; SET_STRING; return TOK_NE;} YY_BREAK case 14: YY_RULE_SETUP #line 142 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_COMMA;} +{ SET_COLUMNS; SET_STRING; return TOK_PLUS;} YY_BREAK case 15: YY_RULE_SETUP #line 143 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_MINUS;} +{ SET_COLUMNS; SET_STRING; return TOK_COMMA;} YY_BREAK case 16: YY_RULE_SETUP #line 144 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_MULT;} +{ SET_COLUMNS; SET_STRING; return TOK_MINUS;} YY_BREAK case 17: YY_RULE_SETUP #line 145 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_DIV;} +{ SET_COLUMNS; SET_STRING; return TOK_MULT;} YY_BREAK case 18: YY_RULE_SETUP #line 146 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_MOD;} +{ SET_COLUMNS; SET_STRING; return TOK_DIV;} YY_BREAK case 19: YY_RULE_SETUP #line 147 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_COND;} +{ SET_COLUMNS; SET_STRING; return TOK_MOD;} YY_BREAK case 20: YY_RULE_SETUP #line 148 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_COMPL;} +{ SET_COLUMNS; SET_STRING; return TOK_COND;} YY_BREAK case 21: YY_RULE_SETUP #line 149 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_COLON;} +{ SET_COLUMNS; SET_STRING; return TOK_COMPL;} YY_BREAK case 22: YY_RULE_SETUP #line 150 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;} +{ SET_COLUMNS; SET_STRING; return TOK_COLON;} YY_BREAK case 23: YY_RULE_SETUP #line 151 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_LP;} +{ SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;} YY_BREAK case 24: YY_RULE_SETUP #line 152 "ast_expr2.fl" -{ SET_COLUMNS; SET_STRING; return TOK_RP;} +{ SET_COLUMNS; SET_STRING; return TOK_LP;} YY_BREAK case 25: YY_RULE_SETUP #line 153 "ast_expr2.fl" +{ SET_COLUMNS; SET_STRING; return TOK_RP;} + YY_BREAK +case 26: +YY_RULE_SETUP +#line 154 "ast_expr2.fl" { /* gather the contents of ${} expressions, with trailing stuff, * into a single TOKEN. @@ -1058,26 +2851,26 @@ YY_RULE_SETUP yymore(); } YY_BREAK -case 26: -YY_RULE_SETUP -#line 163 "ast_expr2.fl" -{} - YY_BREAK case 27: -/* rule 27 can match eol */ YY_RULE_SETUP #line 164 "ast_expr2.fl" -{SET_COLUMNS; SET_STRING; return TOKEN;} +{} YY_BREAK case 28: /* rule 28 can match eol */ YY_RULE_SETUP -#line 166 "ast_expr2.fl" -{/* what to do with eol */} +#line 165 "ast_expr2.fl" +{SET_COLUMNS; SET_STRING; return TOKEN;} YY_BREAK case 29: +/* rule 29 can match eol */ YY_RULE_SETUP #line 167 "ast_expr2.fl" +{/* what to do with eol */} + YY_BREAK +case 30: +YY_RULE_SETUP +#line 168 "ast_expr2.fl" { SET_COLUMNS; /* the original behavior of the expression parser was @@ -1087,19 +2880,20 @@ YY_RULE_SETUP return TOKEN; } YY_BREAK -case 30: +case 31: +/* rule 31 can match eol */ YY_RULE_SETUP -#line 176 "ast_expr2.fl" +#line 177 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOKEN; } YY_BREAK -case 31: -/* rule 31 can match eol */ +case 32: +/* rule 32 can match eol */ YY_RULE_SETUP -#line 183 "ast_expr2.fl" +#line 184 "ast_expr2.fl" { curlycount--; if (curlycount < 0) { @@ -1110,18 +2904,18 @@ YY_RULE_SETUP } } YY_BREAK -case 32: -/* rule 32 can match eol */ +case 33: +/* rule 33 can match eol */ YY_RULE_SETUP -#line 193 "ast_expr2.fl" +#line 194 "ast_expr2.fl" { curlycount++; yymore(); } YY_BREAK -case 33: +case 34: YY_RULE_SETUP -#line 199 "ast_expr2.fl" +#line 200 "ast_expr2.fl" { BEGIN(0); SET_COLUMNS; @@ -1129,10 +2923,10 @@ YY_RULE_SETUP return TOKEN; } YY_BREAK -case 34: -/* rule 34 can match eol */ +case 35: +/* rule 35 can match eol */ YY_RULE_SETUP -#line 206 "ast_expr2.fl" +#line 207 "ast_expr2.fl" { char c = yytext[yyleng-1]; BEGIN(0); @@ -1142,9 +2936,9 @@ YY_RULE_SETUP return TOKEN; } YY_BREAK -case 35: +case 36: YY_RULE_SETUP -#line 215 "ast_expr2.fl" +#line 216 "ast_expr2.fl" { curlycount = 0; BEGIN(var); @@ -1152,7 +2946,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(trail): -#line 221 "ast_expr2.fl" +#line 222 "ast_expr2.fl" { BEGIN(0); SET_COLUMNS; @@ -1161,12 +2955,12 @@ case YY_STATE_EOF(trail): /*actually, if an expr is only a variable ref, this could happen a LOT */ } YY_BREAK -case 36: +case 37: YY_RULE_SETUP -#line 229 "ast_expr2.fl" +#line 230 "ast_expr2.fl" ECHO; YY_BREAK -#line 1170 "ast_expr2f.c" +#line 2964 "ast_expr2f.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(var): yyterminate(); @@ -1234,8 +3028,7 @@ case YY_STATE_EOF(var): else { - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; + yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } @@ -1301,13 +3094,12 @@ case YY_STATE_EOF(var): } /* end of scanning one token */ } /* end of ast_yylex */ -/*! - * \brief yy_get_next_buffer - try to read in a new buffer +/* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: - * \retval EOB_ACT_LAST_MATCH - - * \retval EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * \retval EOB_ACT_END_OF_FILE - end of file + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { @@ -1401,7 +3193,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, num_to_read ); + yyg->yy_n_chars, (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -1434,7 +3226,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) return ret_val; } -/*! \brief yy_get_previous_state - get the state just before the EOB char was reached */ +/* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { @@ -1446,25 +3238,23 @@ static int yy_get_next_buffer (yyscan_t yyscanner) for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( *yy_cp ) + { + yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)]; + } + else + yy_current_state = yy_NUL_trans[yy_current_state]; if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 58 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } -/*! \brief yy_try_NUL_trans - try to make a transition on the NUL character. +/* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); @@ -1475,20 +3265,17 @@ static int yy_get_next_buffer (yyscan_t yyscanner) struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + yy_current_state = yy_NUL_trans[yy_current_state]; + yy_is_jam = (yy_current_state == 0); + + if ( ! yy_is_jam ) { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 58 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 57); return yy_is_jam ? 0 : yy_current_state; } @@ -1606,11 +3393,10 @@ static int yy_get_next_buffer (yyscan_t yyscanner) } #endif /* ifndef YY_NO_INPUT */ -/*! - * \brief Immediately switch to a different input stream. - * \param input_file A readable stream. - * \param yyscanner The scanner object. - * \note This function does not reset the start condition to @c INITIAL . +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * @param yyscanner The scanner object. + * @note This function does not reset the start condition to @c INITIAL . */ void ast_yyrestart (FILE * input_file , yyscan_t yyscanner) { @@ -1626,10 +3412,9 @@ static int yy_get_next_buffer (yyscan_t yyscanner) ast_yy_load_buffer_state(yyscanner ); } -/*! - * \brief Switch to a different input buffer. - * \param new_buffer The new input buffer. - * \param yyscanner The scanner object. +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * @param yyscanner The scanner object. */ void ast_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { @@ -1672,12 +3457,11 @@ static void ast_yy_load_buffer_state (yyscan_t yyscanner) yyg->yy_hold_char = *yyg->yy_c_buf_p; } -/*! - * \brief Allocate and initialize an input buffer state. - * \param file A readable stream. - * \param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * \param yyscanner The scanner object. - * \return the allocated buffer state. +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * @param yyscanner The scanner object. + * @return the allocated buffer state. */ YY_BUFFER_STATE ast_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) { @@ -1703,10 +3487,9 @@ static void ast_yy_load_buffer_state (yyscan_t yyscanner) return b; } -/*! - * \brief Destroy the buffer. - * \param b a buffer created with ast_yy_create_buffer() - * \param yyscanner The scanner object. +/** Destroy the buffer. + * @param b a buffer created with ast_yy_create_buffer() + * @param yyscanner The scanner object. */ void ast_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { @@ -1728,9 +3511,8 @@ static void ast_yy_load_buffer_state (yyscan_t yyscanner) extern int isatty (int ); #endif /* __cplusplus */ -/*! - * \brief Initializes or reinitializes a buffer. - * \note This function is sometimes called more than once on the same buffer, +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, * such as during a ast_yyrestart() or at EOF. */ static void ast_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) @@ -1758,10 +3540,9 @@ extern int isatty (int ); errno = oerrno; } -/*! - * \brief Discard all buffered characters. On the next scan, YY_INPUT will be called. - * \param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * \param yyscanner The scanner object. +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * @param yyscanner The scanner object. */ void ast_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { @@ -1787,12 +3568,11 @@ extern int isatty (int ); ast_yy_load_buffer_state(yyscanner ); } -/*! - * \brief Pushes the new state onto the stack. The new state becomes +/** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. - * \param new_buffer The new state. - * \param yyscanner The scanner object. + * @param new_buffer The new state. + * @param yyscanner The scanner object. */ void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { @@ -1821,10 +3601,9 @@ void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) yyg->yy_did_buffer_switch_on_eof = 1; } -/*! - * \brief Removes and deletes the top of the stack, if present. +/** Removes and deletes the top of the stack, if present. * The next element becomes the new top. - * \param yyscanner The scanner object. + * @param yyscanner The scanner object. */ void ast_yypop_buffer_state (yyscan_t yyscanner) { @@ -1886,12 +3665,11 @@ static void ast_yyensure_buffer_stack (yyscan_t yyscanner) } } -/*! - * \brief Setup the input buffer state to scan directly from a user-specified character buffer. - * \param base the character buffer - * \param size the size in bytes of the character buffer - * \param yyscanner The scanner object. - * \return the newly allocated buffer state object. +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE ast_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) { @@ -1922,13 +3700,12 @@ YY_BUFFER_STATE ast_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yys return b; } -/*! - * \brief Setup the input buffer state to scan a string. The next call to ast_yylex() will - * scan from a \e copy of \a str. - * \param yystr a NUL-terminated string to scan - * \param yyscanner The scanner object. - * \return the newly allocated buffer state object. - * \note If you want to scan bytes that may contain NUL values, then use +/** Setup the input buffer state to scan a string. The next call to ast_yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use * ast_yy_scan_bytes() instead. */ YY_BUFFER_STATE ast_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) @@ -1937,13 +3714,12 @@ YY_BUFFER_STATE ast_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) return ast_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner); } -/*! - * \brief Setup the input buffer state to scan the given bytes. The next call to ast_yylex() will - * scan from a \e copy of \a bytes. - * \param yybytes the byte buffer to scan - * \param _yybytes_len the number of bytes in the buffer pointed to by \a bytes. - * \param yyscanner The scanner object. - * \return the newly allocated buffer state object. +/** Setup the input buffer state to scan the given bytes. The next call to ast_yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE ast_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) { @@ -2004,9 +3780,8 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) /* Accessor methods (get/set functions) to struct members. */ -/*! - * \brief Get the user-defined data for this scanner. - * \param yyscanner The scanner object. +/** Get the user-defined data for this scanner. + * @param yyscanner The scanner object. */ YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner) { @@ -2014,9 +3789,8 @@ YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner) return yyextra; } -/*! - * \brief Get the current line number. - * \param yyscanner The scanner object. +/** Get the current line number. + * @param yyscanner The scanner object. */ int ast_yyget_lineno (yyscan_t yyscanner) { @@ -2028,9 +3802,8 @@ int ast_yyget_lineno (yyscan_t yyscanner) return yylineno; } -/*! - * \brief Get the current column number. - * \param yyscanner The scanner object. +/** Get the current column number. + * @param yyscanner The scanner object. */ int ast_yyget_column (yyscan_t yyscanner) { @@ -2042,9 +3815,8 @@ int ast_yyget_column (yyscan_t yyscanner) return yycolumn; } -/*! - * \brief Get the input stream. - * \param yyscanner The scanner object. +/** Get the input stream. + * @param yyscanner The scanner object. */ FILE *ast_yyget_in (yyscan_t yyscanner) { @@ -2052,9 +3824,8 @@ FILE *ast_yyget_in (yyscan_t yyscanner) return yyin; } -/*! - * \brief Get the output stream. - * \param yyscanner The scanner object. +/** Get the output stream. + * @param yyscanner The scanner object. */ FILE *ast_yyget_out (yyscan_t yyscanner) { @@ -2062,9 +3833,8 @@ FILE *ast_yyget_out (yyscan_t yyscanner) return yyout; } -/*! - * \brief Get the length of the current token. - * \param yyscanner The scanner object. +/** Get the length of the current token. + * @param yyscanner The scanner object. */ int ast_yyget_leng (yyscan_t yyscanner) { @@ -2072,9 +3842,8 @@ int ast_yyget_leng (yyscan_t yyscanner) return yyleng; } -/*! - * \brief Get the current token. - * \param yyscanner The scanner object. +/** Get the current token. + * @param yyscanner The scanner object. */ char *ast_yyget_text (yyscan_t yyscanner) @@ -2083,10 +3852,9 @@ char *ast_yyget_text (yyscan_t yyscanner) return yytext; } -/*! - * \brief Set the user-defined data. This data is never touched by the scanner. - * \param user_defined The data to be associated with this scanner. - * \param yyscanner The scanner object. +/** Set the user-defined data. This data is never touched by the scanner. + * @param user_defined The data to be associated with this scanner. + * @param yyscanner The scanner object. */ void ast_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) { @@ -2094,10 +3862,9 @@ void ast_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) yyextra = user_defined ; } -/*! - * \brief Set the current line number. - * \param line_number - * \param yyscanner The scanner object. +/** Set the current line number. + * @param line_number + * @param yyscanner The scanner object. */ void ast_yyset_lineno (int line_number , yyscan_t yyscanner) { @@ -2110,10 +3877,9 @@ void ast_yyset_lineno (int line_number , yyscan_t yyscanner) yylineno = line_number; } -/*! - * \brief Set the current column. - * \param column_no - * \param yyscanner The scanner object. +/** Set the current column. + * @param line_number + * @param yyscanner The scanner object. */ void ast_yyset_column (int column_no , yyscan_t yyscanner) { @@ -2126,12 +3892,11 @@ void ast_yyset_column (int column_no , yyscan_t yyscanner) yycolumn = column_no; } -/*! - * \brief Set the input stream. This does not discard the current +/** Set the input stream. This does not discard the current * input buffer. - * \param in_str A readable stream. - * \param yyscanner The scanner object. - * \see ast_yy_switch_to_buffer + * @param in_str A readable stream. + * @param yyscanner The scanner object. + * @see ast_yy_switch_to_buffer */ void ast_yyset_in (FILE * in_str , yyscan_t yyscanner) { @@ -2185,10 +3950,9 @@ void ast_yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner) /* User-visible API */ -/*! \brief ast_yylex_init is special because it creates the scanner itself. - * - * It is the ONLY reentrant function that doesn't take the scanner as the last argument. - * \note That's why we explicitly handle the declaration, instead of using our macros. +/* ast_yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. */ int ast_yylex_init(yyscan_t* ptr_yy_globals) @@ -2318,7 +4082,7 @@ void *ast_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 229 "ast_expr2.fl" +#line 230 "ast_expr2.fl" diff --git a/pbx/ael/ael-test/ael-ntest24/extensions.ael b/pbx/ael/ael-test/ael-ntest24/extensions.ael new file mode 100644 index 000000000..ea14aff6e --- /dev/null +++ b/pbx/ael/ael-test/ael-ntest24/extensions.ael @@ -0,0 +1,27 @@ +context test11 +{ +_X. => { + Answer(); + Dial(iax2/test11:nosecret@192.168.134.2522, 15,tTwW); + Hangup(); + NoOp($[{GROUP_COUNT(${target_num}@agent_queue_b)}=1]); + NoOp($[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}]); + NoOp($[0~~${DB(skip_group/${target_num}/agent_queue_b)}+1]); + NoOp($[${GROUP_COUNT(${target_num}@agent_queue_b)}=1+0~~${DB(skip_group/${target_num}/agent_queue_b)}]); + NoOp($[${GROUP_COUNT(${target_num}@agent_queue_b)}=0~~${DB(skip_group/${target_num}/agent_queue_b)}+1]); + if(${GROUP_COUNT(${target_num}@agent_queue_b)}==1+0~~${DB(skip_group/${target_num}/agent_queue_b)}) + { + Set(testif=$[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}]); + } + if(${GROUP_COUNT(${target_num}@agent_queue_b)}==0~~${DB(skip_group/${target_num}/agent_queue_b)}+1) + { + Set(testif=$[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}]); + } + if(${GROUP_COUNT(${target_num}@agent_queue_b)}==1+0~~${DB(skip_group/${target_num}/agent_queue_b)}) + { + Set(testif=$[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}]); + } + } +} + + diff --git a/pbx/ael/ael-test/ref.ael-ntest10 b/pbx/ael/ael-test/ref.ael-ntest10 index 9eb8ac989..ada81dfdc 100644 --- a/pbx/ael/ael-test/ref.ael-ntest10 +++ b/pbx/ael/ael-test/ref.ael-ntest10 @@ -5,8 +5,8 @@ (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) -LOG: lev:2 file:pbx_ael.c line:113 func: pbx_load_module Starting AEL load process. -LOG: lev:2 file:pbx_ael.c line:126 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 1-4: The macro endsess does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 6-9: The macro nullchk does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 11-26: The macro endcall does not end with a return; I will insert one. @@ -24,24 +24,25 @@ LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./exte LOG: lev:3 file:pval.c line:2284 func: check_switch_expr Warning: file ./extensions.ael, line 106-106: A default case was automatically added to the switch. LOG: lev:3 file:pval.c line:2284 func: check_switch_expr Warning: file ./extensions.ael, line 119-119: A default case was automatically added to the switch. LOG: lev:3 file:pval.c line:2284 func: check_switch_expr Warning: file ./extensions.ael, line 122-122: A default case was automatically added to the switch. -LOG: lev:2 file:pbx_ael.c line:129 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. -Executed ast_context_create(conts, name=endsess, registrar=pbx_ael); -Executed ast_context_create(conts, name=nullchk, registrar=pbx_ael); -Executed ast_context_create(conts, name=endcall, registrar=pbx_ael); -Executed ast_context_create(conts, name=endcall2, registrar=pbx_ael); -Executed ast_context_create(conts, name=endcall3, registrar=pbx_ael); -Executed ast_context_create(conts, name=endcall4, registrar=pbx_ael); -Executed ast_context_create(conts, name=endcall5, registrar=pbx_ael); +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +Executed ast_context_find_or_create(conts, name=endsess, registrar=pbx_ael); +Executed ast_context_find_or_create(conts, name=nullchk, registrar=pbx_ael); +Executed ast_context_find_or_create(conts, name=endcall, registrar=pbx_ael); +Executed ast_context_find_or_create(conts, name=endcall2, registrar=pbx_ael); +Executed ast_context_find_or_create(conts, name=endcall3, registrar=pbx_ael); +Executed ast_context_find_or_create(conts, name=endcall4, registrar=pbx_ael); +Executed ast_context_find_or_create(conts, name=endcall5, registrar=pbx_ael); Executed ast_add_extension2(context=endsess, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=NoOp, data=hithere, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endsess, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=nullchk, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=LOCAL(type)=${ARG1}, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=nullchk, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=NoOp, data=${type} is this, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=nullchk, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=LOCAL(type)=${ARG1}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-1-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall-1, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall, rep=0, exten=_sw-1-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Set, data=~~EXTEN~~=${EXTEN}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-1-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall-1, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall, rep=0, exten=_sw-1-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-1-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=10, label=(null), callerid=(null), appl=Gosub, data=nullchk,s,1(callid), FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=11, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:15, FREE, registrar=pbx_ael); @@ -49,18 +50,19 @@ Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=12, Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=13, label=(null), callerid=(null), appl=Goto, data=sw-1-out,ptr1, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=14, label=(null), callerid=(null), appl=Goto, data=17, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=15, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=16, label=(null), callerid=(null), appl=Goto, data=s,3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=16, label=(null), callerid=(null), appl=Goto, data=s,4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=17, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall-out-1-2, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=18, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=19, label=(null), callerid=(null), appl=Goto, data=sw-1-.,10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=LOCAL(type)=${ARG1}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-3-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall2-3, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall2, rep=0, exten=_sw-3-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Set, data=~~EXTEN~~=${EXTEN}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-3-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall2-3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall2, rep=0, exten=_sw-3-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-3-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=10, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=11, label=(null), callerid=(null), appl=Goto, data=s,3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=11, label=(null), callerid=(null), appl=Goto, data=s,4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=12, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=13, label=(null), callerid=(null), appl=Goto, data=sw-3-.,10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=10, label=(null), callerid=(null), appl=Gosub, data=nullchk,s,1(callid), FREE, registrar=pbx_ael); @@ -70,23 +72,24 @@ Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=13 Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=14, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall2-out-3-4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=15, label=(null), callerid=(null), appl=Goto, data=sw-3-out2,10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=LOCAL(type)=${ARG1}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-5-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-5, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-8-out,ptr1, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall3-7, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-8-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-8, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=_sw-8-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,8, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Set, data=~~EXTEN~~=${EXTEN}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-5-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-5, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?6:7, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-8-out,ptr1, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall3-7, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=Goto, data=sw-8-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-8, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=10, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=_sw-8-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,9, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-8-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=10, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?11:13, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=11, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=12, label=(null), callerid=(null), appl=Goto, data=s,8, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=12, label=(null), callerid=(null), appl=Goto, data=s,9, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=13, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall3-out-8-9, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=14, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=15, label=(null), callerid=(null), appl=Goto, data=sw-8-.,10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall3, rep=0, exten=_sw-5-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall3, rep=0, exten=_sw-5-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-5-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=10, label=(null), callerid=(null), appl=Gosub, data=nullchk,s,1(callid), FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=11, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:14, FREE, registrar=pbx_ael); @@ -96,28 +99,30 @@ Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=14 Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=15, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=16, label=(null), callerid=(null), appl=Goto, data=sw-5-.,10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=LOCAL(type)=${ARG1}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-10-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-14-in,ptr1, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall4-12, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-13-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-13, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=_sw-13-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,8, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Set, data=~~EXTEN~~=${EXTEN}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-10-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?6:7, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-14-in,ptr1, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall4-12, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=Goto, data=sw-13-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-13, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=10, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=_sw-13-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,9, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-13-.|10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-14-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=11, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall4-out-13-14, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=12, label=(null), callerid=(null), appl=Goto, data=sw-13-.,10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=_sw-14-., priority=10, label=(null), callerid=(null), appl=Goto, data=sw-13-out,11, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=10, label=(null), callerid=(null), appl=Set, data=~~EXTEN~~=${EXTEN}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=11, label=(null), callerid=(null), appl=Goto, data=sw-14-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=12, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall4-out-13-14, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=13, label=(null), callerid=(null), appl=Goto, data=sw-13-.,10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=_sw-14-., priority=10, label=(null), callerid=(null), appl=Goto, data=sw-13-out,12, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-14-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=10, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?11:13, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=11, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=12, label=(null), callerid=(null), appl=Goto, data=sw-13-out,11, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=12, label=(null), callerid=(null), appl=Goto, data=sw-13-out,12, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=13, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-sw-endcall4-out-13-in-14-15, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=14, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=15, label=(null), callerid=(null), appl=Goto, data=sw-14-.,10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall4, rep=0, exten=_sw-10-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall4, rep=0, exten=_sw-10-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-10-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=10, label=(null), callerid=(null), appl=Gosub, data=nullchk,s,1(callid), FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=11, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:14, FREE, registrar=pbx_ael); @@ -127,28 +132,30 @@ Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=1 Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=15, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=16, label=(null), callerid=(null), appl=Goto, data=sw-10-.,10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=LOCAL(type)=${ARG1}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-16-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-16, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-21-in,ptr1, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall5-19, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-20-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-20, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=_sw-20-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,8, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Set, data=~~EXTEN~~=${EXTEN}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-16-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-16, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?6:7, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-21-in,ptr1, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall5-19, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=Goto, data=sw-20-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-20, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=10, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=_sw-20-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,9, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-20-.|10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-21-${type},10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=11, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall5-out-20-21, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=12, label=(null), callerid=(null), appl=Goto, data=sw-20-.,10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=_sw-21-., priority=10, label=(null), callerid=(null), appl=Goto, data=sw-20-out,11, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=10, label=(null), callerid=(null), appl=Set, data=~~EXTEN~~=${EXTEN}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=11, label=(null), callerid=(null), appl=Goto, data=sw-21-${type},10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=12, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall5-out-20-21, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=13, label=(null), callerid=(null), appl=Goto, data=sw-20-.,10, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=_sw-21-., priority=10, label=(null), callerid=(null), appl=Goto, data=sw-20-out,12, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-21-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=10, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?11:13, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=11, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=12, label=(null), callerid=(null), appl=Goto, data=sw-20-out,11, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=12, label=(null), callerid=(null), appl=Goto, data=sw-20-out,12, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=13, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-sw-endcall5-out-20-in-21-22, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=14, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=15, label=(null), callerid=(null), appl=Goto, data=sw-21-.,10, FREE, registrar=pbx_ael); -Executed ast_add_extension2(context=endcall5, rep=0, exten=_sw-16-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,3, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=endcall5, rep=0, exten=_sw-16-., priority=10, label=(null), callerid=(null), appl=Goto, data=s,4, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-16-.|10, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=10, label=(null), callerid=(null), appl=Gosub, data=nullchk,s,1(callid), FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=11, label=ptr2, callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:14, FREE, registrar=pbx_ael); @@ -163,9 +170,9 @@ Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=1 Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=13, label=(null), callerid=(null), appl=Goto, data=sw-21-in,ptr1, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=14, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall5-out-16-17, FREE, registrar=pbx_ael); Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=15, label=(null), callerid=(null), appl=Goto, data=sw-16-in,10, FREE, registrar=pbx_ael); -LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. Executed ast_merge_contexts_and_delete(); -LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. Executed ast_walk_contexts(); -LOG: lev:2 file:pbx_ael.c line:137 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. -LOG: lev:4 file:ael2_parse line:531 func: main 7 contexts, 37 extensions, 131 priorities +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 7 contexts, 37 extensions, 138 priorities diff --git a/pbx/ael/ael-test/ref.ael-ntest24 b/pbx/ael/ael-test/ref.ael-ntest24 new file mode 100644 index 000000000..4bb32502b --- /dev/null +++ b/pbx/ael/ael-test/ref.ael-ntest24 @@ -0,0 +1,34 @@ + +(If you find progress and other non-error messages irritating, you can use -q to suppress them) + +(You can use the -n option if you aren't interested in seeing all the instructions generated by the compiler) + + +(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +Executed ast_context_find_or_create(conts, name=test11, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=1, label=(null), callerid=(null), appl=Answer, data=, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=2, label=(null), callerid=(null), appl=Dial, data=iax2/test11:nosecret@192.168.134.2522, 15,tTwW, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=3, label=(null), callerid=(null), appl=Hangup, data=, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=4, label=(null), callerid=(null), appl=NoOp, data=$[{GROUP_COUNT(${target_num}@agent_queue_b)}=1], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=5, label=(null), callerid=(null), appl=NoOp, data=$[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=6, label=(null), callerid=(null), appl=NoOp, data=$[0~~${DB(skip_group/${target_num}/agent_queue_b)}+1], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=7, label=(null), callerid=(null), appl=NoOp, data=$[${GROUP_COUNT(${target_num}@agent_queue_b)}=1+0~~${DB(skip_group/${target_num}/agent_queue_b)}], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=8, label=(null), callerid=(null), appl=NoOp, data=$[${GROUP_COUNT(${target_num}@agent_queue_b)}=0~~${DB(skip_group/${target_num}/agent_queue_b)}+1], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=9, label=(null), callerid=(null), appl=GotoIf, data=$[${GROUP_COUNT(${target_num}@agent_queue_b)}==1+0~~${DB(skip_group/${target_num}/agent_queue_b)}]?10:11, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=10, label=(null), callerid=(null), appl=Set, data=testif=$[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=11, label=(null), callerid=(null), appl=NoOp, data=Finish if-test11-1, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=12, label=(null), callerid=(null), appl=GotoIf, data=$[${GROUP_COUNT(${target_num}@agent_queue_b)}==0~~${DB(skip_group/${target_num}/agent_queue_b)}+1]?13:14, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=13, label=(null), callerid=(null), appl=Set, data=testif=$[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=14, label=(null), callerid=(null), appl=NoOp, data=Finish if-test11-2, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=15, label=(null), callerid=(null), appl=GotoIf, data=$[${GROUP_COUNT(${target_num}@agent_queue_b)}==1+0~~${DB(skip_group/${target_num}/agent_queue_b)}]?16:17, FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=16, label=(null), callerid=(null), appl=Set, data=testif=$[1+0~~${DB(skip_group/${target_num}/agent_queue_b)}], FREE, registrar=pbx_ael); +Executed ast_add_extension2(context=test11, rep=0, exten=_X., priority=17, label=(null), callerid=(null), appl=NoOp, data=Finish if-test11-3, FREE, registrar=pbx_ael); +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +Executed ast_merge_contexts_and_delete(); +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +Executed ast_walk_contexts(); +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 1 contexts, 1 extensions, 17 priorities diff --git a/pbx/ael/ael-test/ref.ael-test1 b/pbx/ael/ael-test/ref.ael-test1 index 5538514fe..645ce130f 100644 --- a/pbx/ael/ael-test/ref.ael-test1 +++ b/pbx/ael/ael-test/ref.ael-test1 @@ -2,8 +2,8 @@ (If you find progress and other non-error messages irritating, you can use -q to suppress them) (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) -LOG: lev:2 file:pbx_ael.c line:113 func: pbx_load_module Starting AEL load process. -LOG: lev:2 file:pbx_ael.c line:126 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 2-16: The macro testdial does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 18-25: The macro exten-gen does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:1362 func: check_goto Warning: file ./extensions.ael, line 21-21: It's bad form to have a goto in a macro to a target outside the macro! @@ -11,8 +11,8 @@ LOG: lev:3 file:pval.c line:1362 func: check_goto Warning: file ./extensions.a LOG: lev:3 file:pval.c line:2284 func: check_switch_expr Warning: file ./extensions.ael, line 58-58: A default case was automatically added to the switch. LOG: lev:3 file:pval.c line:922 func: check_dow Warning: file ./extensions.ael, line 67-67: The day (m0n) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'! LOG: lev:3 file:pval.c line:880 func: check_timerange Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range! -LOG: lev:2 file:pbx_ael.c line:129 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:137 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. -LOG: lev:4 file:ael2_parse line:531 func: main 5 contexts, 16 extensions, 157 priorities +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 5 contexts, 16 extensions, 159 priorities diff --git a/pbx/ael/ael-test/ref.ael-test18 b/pbx/ael/ael-test/ref.ael-test18 index 072135ef2..51507b54e 100644 --- a/pbx/ael/ael-test/ref.ael-test18 +++ b/pbx/ael/ael-test/ref.ael-test18 @@ -2,10 +2,10 @@ (If you find progress and other non-error messages irritating, you can use -q to suppress them) (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) -LOG: lev:2 file:pbx_ael.c line:113 func: pbx_load_module Starting AEL load process. -LOG: lev:2 file:pbx_ael.c line:126 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:129 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:137 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. -LOG: lev:4 file:ael2_parse line:531 func: main 1 contexts, 7 extensions, 27 priorities +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 1 contexts, 7 extensions, 29 priorities diff --git a/pbx/ael/ael-test/ref.ael-test19 b/pbx/ael/ael-test/ref.ael-test19 index e093d75e5..405f43705 100644 --- a/pbx/ael/ael-test/ref.ael-test19 +++ b/pbx/ael/ael-test/ref.ael-test19 @@ -2,8 +2,8 @@ (If you find progress and other non-error messages irritating, you can use -q to suppress them) (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) -LOG: lev:2 file:pbx_ael.c line:113 func: pbx_load_module Starting AEL load process. -LOG: lev:2 file:pbx_ael.c line:126 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. LOG: lev:3 file:pval.c line:2300 func: check_context_names Warning: file ./extensions.ael, line 49-62: The context name (incoming) is also declared in file ./extensions.ael, line 62-69! (and neither is marked 'extend') LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 71-175: The macro std-priv-exten does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:2284 func: check_switch_expr Warning: file ./extensions.ael, line 245-246: A default case was automatically added to the switch. @@ -11,8 +11,8 @@ LOG: lev:3 file:pval.c line:2426 func: check_pval_item Warning: file ./extensi LOG: lev:3 file:pval.c line:2426 func: check_pval_item Warning: file ./extensions.ael, line 313-313: macro call to non-existent funcD! (Not even in the extensions.conf stuff!) LOG: lev:3 file:pval.c line:1346 func: check_goto Warning: file ./extensions.ael, line 319-319: goto: Couldn't find goto target test5|s|1, not even in extensions.conf! LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 363-366: The macro dialoutpstn does not end with a return; I will insert one. -LOG: lev:2 file:pbx_ael.c line:129 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:137 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. -LOG: lev:4 file:ael2_parse line:531 func: main 13 contexts, 57 extensions, 188 priorities +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 13 contexts, 57 extensions, 194 priorities diff --git a/pbx/ael/ael-test/ref.ael-test3 b/pbx/ael/ael-test/ref.ael-test3 index 5ff89ef8b..e8fde6c9d 100644 --- a/pbx/ael/ael-test/ref.ael-test3 +++ b/pbx/ael/ael-test/ref.ael-test3 @@ -2,14 +2,14 @@ (If you find progress and other non-error messages irritating, you can use -q to suppress them) (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) -LOG: lev:2 file:pbx_ael.c line:113 func: pbx_load_module Starting AEL load process. -LOG: lev:2 file:ael.flex line:662 func: setup_filestack --Read in included file ././include1.ael2, 78 chars -LOG: lev:2 file:ael.flex line:662 func: setup_filestack --Read in included file ././include2.ael2, 98 chars -LOG: lev:2 file:ael.flex line:662 func: setup_filestack --Read in included file ././include3.ael2, 57 chars -LOG: lev:2 file:ael.flex line:662 func: setup_filestack --Read in included file ././include5.ael2, 56 chars -LOG: lev:2 file:ael.flex line:662 func: setup_filestack --Read in included file ././include4.ael2, 87 chars -LOG: lev:2 file:ael.flex line:662 func: setup_filestack --Read in included file ././telemarket_torture.ael2, 28036 chars -LOG: lev:2 file:pbx_ael.c line:126 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:ael.flex line:672 func: setup_filestack --Read in included file ././include1.ael2, 78 chars +LOG: lev:2 file:ael.flex line:672 func: setup_filestack --Read in included file ././include2.ael2, 98 chars +LOG: lev:2 file:ael.flex line:672 func: setup_filestack --Read in included file ././include3.ael2, 57 chars +LOG: lev:2 file:ael.flex line:672 func: setup_filestack --Read in included file ././include5.ael2, 56 chars +LOG: lev:2 file:ael.flex line:672 func: setup_filestack --Read in included file ././include4.ael2, 87 chars +LOG: lev:2 file:ael.flex line:672 func: setup_filestack --Read in included file ././telemarket_torture.ael2, 28036 chars +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 14-34: The macro std-exten does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:1362 func: check_goto Warning: file ./extensions.ael, line 17-17: It's bad form to have a goto in a macro to a target outside the macro! LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 36-59: The macro std-priv-exten_1 does not end with a return; I will insert one. @@ -92,8 +92,8 @@ LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./exte LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 2030-2048: The macro ciddial2 does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 2050-2065: The macro callerid-liar does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 2067-2072: The macro callerid-bad does not end with a return; I will insert one. -LOG: lev:2 file:pbx_ael.c line:129 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:137 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. -LOG: lev:4 file:ael2_parse line:531 func: main 172 contexts, 934 extensions, 2482 priorities +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 172 contexts, 934 extensions, 2558 priorities diff --git a/pbx/ael/ael-test/ref.ael-test5 b/pbx/ael/ael-test/ref.ael-test5 index 79c327413..0143decf5 100644 --- a/pbx/ael/ael-test/ref.ael-test5 +++ b/pbx/ael/ael-test/ref.ael-test5 @@ -2,13 +2,13 @@ (If you find progress and other non-error messages irritating, you can use -q to suppress them) (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) -LOG: lev:2 file:pbx_ael.c line:113 func: pbx_load_module Starting AEL load process. -LOG: lev:2 file:pbx_ael.c line:126 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 130-183: The macro stdexten does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 185-192: The macro uvm does not end with a return; I will insert one. LOG: lev:3 file:pval.c line:671 func: check_macro_returns Warning: file ./extensions.ael, line 194-201: The macro bvm does not end with a return; I will insert one. -LOG: lev:2 file:pbx_ael.c line:129 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:137 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. -LOG: lev:4 file:ael2_parse line:531 func: main 38 contexts, 91 extensions, 493 priorities +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 38 contexts, 91 extensions, 494 priorities diff --git a/pbx/ael/ael-test/ref.ael-test8 b/pbx/ael/ael-test/ref.ael-test8 index 4e5d0aa37..887c3e72b 100644 --- a/pbx/ael/ael-test/ref.ael-test8 +++ b/pbx/ael/ael-test/ref.ael-test8 @@ -2,10 +2,10 @@ (If you find progress and other non-error messages irritating, you can use -q to suppress them) (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump) -LOG: lev:2 file:pbx_ael.c line:113 func: pbx_load_module Starting AEL load process. -LOG: lev:2 file:pbx_ael.c line:126 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:129 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. -LOG: lev:2 file:pbx_ael.c line:137 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. -LOG: lev:4 file:ael2_parse line:531 func: main 1 contexts, 7 extensions, 17 priorities +LOG: lev:2 file:pbx_ael.c line:115 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:pbx_ael.c line:128 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:131 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:134 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:139 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +LOG: lev:2 file:pbx_ael.c line:142 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:548 func: main 1 contexts, 7 extensions, 19 priorities diff --git a/pbx/ael/ael-test/ref.ael-vtest13 b/pbx/ael/ael-test/ref.ael-vtest13 index 989a18258..13e23cbde 100644 --- a/pbx/ael/ael-test/ref.ael-vtest13 +++ b/pbx/ael/ael-test/ref.ael-vtest13 @@ -14,18 +14,19 @@ FWDVMBOX=1 exten => s,1,Set(LOCAL(ext)=${ARG1}) exten => s,2,Set(LOCAL(dev)=${ARG2}) exten => s,3,Dial(${dev}/${ext}\,20) -exten => s,4,Goto(sw-1-${DIALSTATUS}\,10) -exten => s,5,NoOp(Finish switch-std-exten-1) -exten => s,6,Return() +exten => s,4,Set(~~EXTEN~~=${EXTEN}) +exten => s,5,Goto(sw-1-${DIALSTATUS}\,10) +exten => s,6,NoOp(Finish switch-std-exten-1) +exten => s,7,Return() exten => a,1,VoiceMailMain(${ext}) exten => _sw-1-.,10,Voicemail(u${ext}) -exten => _sw-1-.,11,Goto(s\,5) +exten => _sw-1-.,11,Goto(s\,6) exten => sw-1-,10,Goto(sw-1-.|10) -exten => sw-1-ANSWER,10,Goto(s\,5) +exten => sw-1-ANSWER,10,Goto(s\,6) exten => sw-1-NOANSWER,10,Voicemail(u${ext}) -exten => sw-1-NOANSWER,11,Goto(s\,5) +exten => sw-1-NOANSWER,11,Goto(s\,6) exten => sw-1-BUSY,10,Voicemail(b${ext}) -exten => sw-1-BUSY,11,Goto(s\,5) +exten => sw-1-BUSY,11,Goto(s\,6) [std-priv-exten_1] @@ -37,21 +38,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-3-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_1-3) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-3-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_1-3) +exten => s,12,Return() exten => _sw-3-.,10,Voicemail(u${ext}) -exten => _sw-3-.,11,Goto(s\,10) +exten => _sw-3-.,11,Goto(s\,11) exten => sw-3-,10,Goto(sw-3-.|10) exten => sw-3-NOANSWER,10,Voicemail(u${ext}) -exten => sw-3-NOANSWER,11,Goto(s\,10) -exten => sw-3-ANSWER,10,Goto(s\,10) +exten => sw-3-NOANSWER,11,Goto(s\,11) +exten => sw-3-ANSWER,10,Goto(s\,11) exten => sw-3-BUSY,10,Voicemail(b${ext}) -exten => sw-3-BUSY,11,Goto(s\,10) +exten => sw-3-BUSY,11,Goto(s\,11) exten => sw-3-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-3-DONTCALL,11,Goto(s\,10) +exten => sw-3-DONTCALL,11,Goto(s\,11) exten => sw-3-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-3-TORTURE,11,Goto(s\,10) +exten => sw-3-TORTURE,11,Goto(s\,11) [std-priv-exten_2] @@ -63,21 +65,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-4-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_2-4) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-4-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_2-4) +exten => s,12,Return() exten => _sw-4-.,10,Voicemail(u${ext}) -exten => _sw-4-.,11,Goto(s\,10) +exten => _sw-4-.,11,Goto(s\,11) exten => sw-4-,10,Goto(sw-4-.|10) exten => sw-4-NOANSWER,10,Voicemail(u${ext}) -exten => sw-4-NOANSWER,11,Goto(s\,10) -exten => sw-4-ANSWER,10,Goto(s\,10) +exten => sw-4-NOANSWER,11,Goto(s\,11) +exten => sw-4-ANSWER,10,Goto(s\,11) exten => sw-4-BUSY,10,Voicemail(b${ext}) -exten => sw-4-BUSY,11,Goto(s\,10) +exten => sw-4-BUSY,11,Goto(s\,11) exten => sw-4-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-4-DONTCALL,11,Goto(s\,10) +exten => sw-4-DONTCALL,11,Goto(s\,11) exten => sw-4-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-4-TORTURE,11,Goto(s\,10) +exten => sw-4-TORTURE,11,Goto(s\,11) [std-priv-exten_3] @@ -89,21 +92,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-5-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_3-5) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-5-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_3-5) +exten => s,12,Return() exten => _sw-5-.,10,Voicemail(u${ext}) -exten => _sw-5-.,11,Goto(s\,10) +exten => _sw-5-.,11,Goto(s\,11) exten => sw-5-,10,Goto(sw-5-.|10) exten => sw-5-NOANSWER,10,Voicemail(u${ext}) -exten => sw-5-NOANSWER,11,Goto(s\,10) -exten => sw-5-ANSWER,10,Goto(s\,10) +exten => sw-5-NOANSWER,11,Goto(s\,11) +exten => sw-5-ANSWER,10,Goto(s\,11) exten => sw-5-BUSY,10,Voicemail(b${ext}) -exten => sw-5-BUSY,11,Goto(s\,10) +exten => sw-5-BUSY,11,Goto(s\,11) exten => sw-5-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-5-DONTCALL,11,Goto(s\,10) +exten => sw-5-DONTCALL,11,Goto(s\,11) exten => sw-5-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-5-TORTURE,11,Goto(s\,10) +exten => sw-5-TORTURE,11,Goto(s\,11) [std-priv-exten_4] @@ -115,21 +119,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-6-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_4-6) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-6-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_4-6) +exten => s,12,Return() exten => _sw-6-.,10,Voicemail(u${ext}) -exten => _sw-6-.,11,Goto(s\,10) +exten => _sw-6-.,11,Goto(s\,11) exten => sw-6-,10,Goto(sw-6-.|10) exten => sw-6-NOANSWER,10,Voicemail(u${ext}) -exten => sw-6-NOANSWER,11,Goto(s\,10) -exten => sw-6-ANSWER,10,Goto(s\,10) +exten => sw-6-NOANSWER,11,Goto(s\,11) +exten => sw-6-ANSWER,10,Goto(s\,11) exten => sw-6-BUSY,10,Voicemail(b${ext}) -exten => sw-6-BUSY,11,Goto(s\,10) +exten => sw-6-BUSY,11,Goto(s\,11) exten => sw-6-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-6-DONTCALL,11,Goto(s\,10) +exten => sw-6-DONTCALL,11,Goto(s\,11) exten => sw-6-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-6-TORTURE,11,Goto(s\,10) +exten => sw-6-TORTURE,11,Goto(s\,11) [std-priv-exten_5] @@ -141,21 +146,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-7-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_5-7) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-7-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_5-7) +exten => s,12,Return() exten => _sw-7-.,10,Voicemail(u${ext}) -exten => _sw-7-.,11,Goto(s\,10) +exten => _sw-7-.,11,Goto(s\,11) exten => sw-7-,10,Goto(sw-7-.|10) exten => sw-7-NOANSWER,10,Voicemail(u${ext}) -exten => sw-7-NOANSWER,11,Goto(s\,10) -exten => sw-7-ANSWER,10,Goto(s\,10) +exten => sw-7-NOANSWER,11,Goto(s\,11) +exten => sw-7-ANSWER,10,Goto(s\,11) exten => sw-7-BUSY,10,Voicemail(b${ext}) -exten => sw-7-BUSY,11,Goto(s\,10) +exten => sw-7-BUSY,11,Goto(s\,11) exten => sw-7-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-7-DONTCALL,11,Goto(s\,10) +exten => sw-7-DONTCALL,11,Goto(s\,11) exten => sw-7-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-7-TORTURE,11,Goto(s\,10) +exten => sw-7-TORTURE,11,Goto(s\,11) [std-priv-exten_6] @@ -167,21 +173,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-8-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_6-8) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-8-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_6-8) +exten => s,12,Return() exten => _sw-8-.,10,Voicemail(u${ext}) -exten => _sw-8-.,11,Goto(s\,10) +exten => _sw-8-.,11,Goto(s\,11) exten => sw-8-,10,Goto(sw-8-.|10) exten => sw-8-NOANSWER,10,Voicemail(u${ext}) -exten => sw-8-NOANSWER,11,Goto(s\,10) -exten => sw-8-ANSWER,10,Goto(s\,10) +exten => sw-8-NOANSWER,11,Goto(s\,11) +exten => sw-8-ANSWER,10,Goto(s\,11) exten => sw-8-BUSY,10,Voicemail(b${ext}) -exten => sw-8-BUSY,11,Goto(s\,10) +exten => sw-8-BUSY,11,Goto(s\,11) exten => sw-8-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-8-DONTCALL,11,Goto(s\,10) +exten => sw-8-DONTCALL,11,Goto(s\,11) exten => sw-8-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-8-TORTURE,11,Goto(s\,10) +exten => sw-8-TORTURE,11,Goto(s\,11) [std-priv-exten_7] @@ -193,21 +200,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-9-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_7-9) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-9-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_7-9) +exten => s,12,Return() exten => _sw-9-.,10,Voicemail(u${ext}) -exten => _sw-9-.,11,Goto(s\,10) +exten => _sw-9-.,11,Goto(s\,11) exten => sw-9-,10,Goto(sw-9-.|10) exten => sw-9-NOANSWER,10,Voicemail(u${ext}) -exten => sw-9-NOANSWER,11,Goto(s\,10) -exten => sw-9-ANSWER,10,Goto(s\,10) +exten => sw-9-NOANSWER,11,Goto(s\,11) +exten => sw-9-ANSWER,10,Goto(s\,11) exten => sw-9-BUSY,10,Voicemail(b${ext}) -exten => sw-9-BUSY,11,Goto(s\,10) +exten => sw-9-BUSY,11,Goto(s\,11) exten => sw-9-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-9-DONTCALL,11,Goto(s\,10) +exten => sw-9-DONTCALL,11,Goto(s\,11) exten => sw-9-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-9-TORTURE,11,Goto(s\,10) +exten => sw-9-TORTURE,11,Goto(s\,11) [std-priv-exten_8] @@ -219,21 +227,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-10-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_8-10) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-10-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_8-10) +exten => s,12,Return() exten => _sw-10-.,10,Voicemail(u${ext}) -exten => _sw-10-.,11,Goto(s\,10) +exten => _sw-10-.,11,Goto(s\,11) exten => sw-10-,10,Goto(sw-10-.|10) exten => sw-10-NOANSWER,10,Voicemail(u${ext}) -exten => sw-10-NOANSWER,11,Goto(s\,10) -exten => sw-10-ANSWER,10,Goto(s\,10) +exten => sw-10-NOANSWER,11,Goto(s\,11) +exten => sw-10-ANSWER,10,Goto(s\,11) exten => sw-10-BUSY,10,Voicemail(b${ext}) -exten => sw-10-BUSY,11,Goto(s\,10) +exten => sw-10-BUSY,11,Goto(s\,11) exten => sw-10-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-10-DONTCALL,11,Goto(s\,10) +exten => sw-10-DONTCALL,11,Goto(s\,11) exten => sw-10-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-10-TORTURE,11,Goto(s\,10) +exten => sw-10-TORTURE,11,Goto(s\,11) [std-priv-exten_9] @@ -245,21 +254,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-11-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_9-11) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-11-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_9-11) +exten => s,12,Return() exten => _sw-11-.,10,Voicemail(u${ext}) -exten => _sw-11-.,11,Goto(s\,10) +exten => _sw-11-.,11,Goto(s\,11) exten => sw-11-,10,Goto(sw-11-.|10) exten => sw-11-NOANSWER,10,Voicemail(u${ext}) -exten => sw-11-NOANSWER,11,Goto(s\,10) -exten => sw-11-ANSWER,10,Goto(s\,10) +exten => sw-11-NOANSWER,11,Goto(s\,11) +exten => sw-11-ANSWER,10,Goto(s\,11) exten => sw-11-BUSY,10,Voicemail(b${ext}) -exten => sw-11-BUSY,11,Goto(s\,10) +exten => sw-11-BUSY,11,Goto(s\,11) exten => sw-11-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-11-DONTCALL,11,Goto(s\,10) +exten => sw-11-DONTCALL,11,Goto(s\,11) exten => sw-11-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-11-TORTURE,11,Goto(s\,10) +exten => sw-11-TORTURE,11,Goto(s\,11) [std-priv-exten_10] @@ -271,21 +281,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-12-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_10-12) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-12-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_10-12) +exten => s,12,Return() exten => _sw-12-.,10,Voicemail(u${ext}) -exten => _sw-12-.,11,Goto(s\,10) +exten => _sw-12-.,11,Goto(s\,11) exten => sw-12-,10,Goto(sw-12-.|10) exten => sw-12-NOANSWER,10,Voicemail(u${ext}) -exten => sw-12-NOANSWER,11,Goto(s\,10) -exten => sw-12-ANSWER,10,Goto(s\,10) +exten => sw-12-NOANSWER,11,Goto(s\,11) +exten => sw-12-ANSWER,10,Goto(s\,11) exten => sw-12-BUSY,10,Voicemail(b${ext}) -exten => sw-12-BUSY,11,Goto(s\,10) +exten => sw-12-BUSY,11,Goto(s\,11) exten => sw-12-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-12-DONTCALL,11,Goto(s\,10) +exten => sw-12-DONTCALL,11,Goto(s\,11) exten => sw-12-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-12-TORTURE,11,Goto(s\,10) +exten => sw-12-TORTURE,11,Goto(s\,11) [std-priv-exten_11] @@ -297,21 +308,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-13-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_11-13) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-13-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_11-13) +exten => s,12,Return() exten => _sw-13-.,10,Voicemail(u${ext}) -exten => _sw-13-.,11,Goto(s\,10) +exten => _sw-13-.,11,Goto(s\,11) exten => sw-13-,10,Goto(sw-13-.|10) exten => sw-13-NOANSWER,10,Voicemail(u${ext}) -exten => sw-13-NOANSWER,11,Goto(s\,10) -exten => sw-13-ANSWER,10,Goto(s\,10) +exten => sw-13-NOANSWER,11,Goto(s\,11) +exten => sw-13-ANSWER,10,Goto(s\,11) exten => sw-13-BUSY,10,Voicemail(b${ext}) -exten => sw-13-BUSY,11,Goto(s\,10) +exten => sw-13-BUSY,11,Goto(s\,11) exten => sw-13-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-13-DONTCALL,11,Goto(s\,10) +exten => sw-13-DONTCALL,11,Goto(s\,11) exten => sw-13-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-13-TORTURE,11,Goto(s\,10) +exten => sw-13-TORTURE,11,Goto(s\,11) [std-priv-exten_12] @@ -323,21 +335,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-14-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_12-14) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-14-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_12-14) +exten => s,12,Return() exten => _sw-14-.,10,Voicemail(u${ext}) -exten => _sw-14-.,11,Goto(s\,10) +exten => _sw-14-.,11,Goto(s\,11) exten => sw-14-,10,Goto(sw-14-.|10) exten => sw-14-NOANSWER,10,Voicemail(u${ext}) -exten => sw-14-NOANSWER,11,Goto(s\,10) -exten => sw-14-ANSWER,10,Goto(s\,10) +exten => sw-14-NOANSWER,11,Goto(s\,11) +exten => sw-14-ANSWER,10,Goto(s\,11) exten => sw-14-BUSY,10,Voicemail(b${ext}) -exten => sw-14-BUSY,11,Goto(s\,10) +exten => sw-14-BUSY,11,Goto(s\,11) exten => sw-14-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-14-DONTCALL,11,Goto(s\,10) +exten => sw-14-DONTCALL,11,Goto(s\,11) exten => sw-14-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-14-TORTURE,11,Goto(s\,10) +exten => sw-14-TORTURE,11,Goto(s\,11) [std-priv-exten_13] @@ -349,21 +362,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-15-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_13-15) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-15-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_13-15) +exten => s,12,Return() exten => _sw-15-.,10,Voicemail(u${ext}) -exten => _sw-15-.,11,Goto(s\,10) +exten => _sw-15-.,11,Goto(s\,11) exten => sw-15-,10,Goto(sw-15-.|10) exten => sw-15-NOANSWER,10,Voicemail(u${ext}) -exten => sw-15-NOANSWER,11,Goto(s\,10) -exten => sw-15-ANSWER,10,Goto(s\,10) +exten => sw-15-NOANSWER,11,Goto(s\,11) +exten => sw-15-ANSWER,10,Goto(s\,11) exten => sw-15-BUSY,10,Voicemail(b${ext}) -exten => sw-15-BUSY,11,Goto(s\,10) +exten => sw-15-BUSY,11,Goto(s\,11) exten => sw-15-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-15-DONTCALL,11,Goto(s\,10) +exten => sw-15-DONTCALL,11,Goto(s\,11) exten => sw-15-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-15-TORTURE,11,Goto(s\,10) +exten => sw-15-TORTURE,11,Goto(s\,11) [std-priv-exten_14] @@ -375,21 +389,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-16-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_14-16) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-16-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_14-16) +exten => s,12,Return() exten => _sw-16-.,10,Voicemail(u${ext}) -exten => _sw-16-.,11,Goto(s\,10) +exten => _sw-16-.,11,Goto(s\,11) exten => sw-16-,10,Goto(sw-16-.|10) exten => sw-16-NOANSWER,10,Voicemail(u${ext}) -exten => sw-16-NOANSWER,11,Goto(s\,10) -exten => sw-16-ANSWER,10,Goto(s\,10) +exten => sw-16-NOANSWER,11,Goto(s\,11) +exten => sw-16-ANSWER,10,Goto(s\,11) exten => sw-16-BUSY,10,Voicemail(b${ext}) -exten => sw-16-BUSY,11,Goto(s\,10) +exten => sw-16-BUSY,11,Goto(s\,11) exten => sw-16-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-16-DONTCALL,11,Goto(s\,10) +exten => sw-16-DONTCALL,11,Goto(s\,11) exten => sw-16-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-16-TORTURE,11,Goto(s\,10) +exten => sw-16-TORTURE,11,Goto(s\,11) [std-priv-exten_15] @@ -401,21 +416,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-17-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_15-17) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-17-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_15-17) +exten => s,12,Return() exten => _sw-17-.,10,Voicemail(u${ext}) -exten => _sw-17-.,11,Goto(s\,10) +exten => _sw-17-.,11,Goto(s\,11) exten => sw-17-,10,Goto(sw-17-.|10) exten => sw-17-NOANSWER,10,Voicemail(u${ext}) -exten => sw-17-NOANSWER,11,Goto(s\,10) -exten => sw-17-ANSWER,10,Goto(s\,10) +exten => sw-17-NOANSWER,11,Goto(s\,11) +exten => sw-17-ANSWER,10,Goto(s\,11) exten => sw-17-BUSY,10,Voicemail(b${ext}) -exten => sw-17-BUSY,11,Goto(s\,10) +exten => sw-17-BUSY,11,Goto(s\,11) exten => sw-17-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-17-DONTCALL,11,Goto(s\,10) +exten => sw-17-DONTCALL,11,Goto(s\,11) exten => sw-17-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-17-TORTURE,11,Goto(s\,10) +exten => sw-17-TORTURE,11,Goto(s\,11) [std-priv-exten_16] @@ -427,21 +443,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-18-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_16-18) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-18-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_16-18) +exten => s,12,Return() exten => _sw-18-.,10,Voicemail(u${ext}) -exten => _sw-18-.,11,Goto(s\,10) +exten => _sw-18-.,11,Goto(s\,11) exten => sw-18-,10,Goto(sw-18-.|10) exten => sw-18-NOANSWER,10,Voicemail(u${ext}) -exten => sw-18-NOANSWER,11,Goto(s\,10) -exten => sw-18-ANSWER,10,Goto(s\,10) +exten => sw-18-NOANSWER,11,Goto(s\,11) +exten => sw-18-ANSWER,10,Goto(s\,11) exten => sw-18-BUSY,10,Voicemail(b${ext}) -exten => sw-18-BUSY,11,Goto(s\,10) +exten => sw-18-BUSY,11,Goto(s\,11) exten => sw-18-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-18-DONTCALL,11,Goto(s\,10) +exten => sw-18-DONTCALL,11,Goto(s\,11) exten => sw-18-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-18-TORTURE,11,Goto(s\,10) +exten => sw-18-TORTURE,11,Goto(s\,11) [std-priv-exten_17] @@ -453,21 +470,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-19-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_17-19) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-19-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_17-19) +exten => s,12,Return() exten => _sw-19-.,10,Voicemail(u${ext}) -exten => _sw-19-.,11,Goto(s\,10) +exten => _sw-19-.,11,Goto(s\,11) exten => sw-19-,10,Goto(sw-19-.|10) exten => sw-19-NOANSWER,10,Voicemail(u${ext}) -exten => sw-19-NOANSWER,11,Goto(s\,10) -exten => sw-19-ANSWER,10,Goto(s\,10) +exten => sw-19-NOANSWER,11,Goto(s\,11) +exten => sw-19-ANSWER,10,Goto(s\,11) exten => sw-19-BUSY,10,Voicemail(b${ext}) -exten => sw-19-BUSY,11,Goto(s\,10) +exten => sw-19-BUSY,11,Goto(s\,11) exten => sw-19-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-19-DONTCALL,11,Goto(s\,10) +exten => sw-19-DONTCALL,11,Goto(s\,11) exten => sw-19-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-19-TORTURE,11,Goto(s\,10) +exten => sw-19-TORTURE,11,Goto(s\,11) [std-priv-exten_18] @@ -479,21 +497,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-20-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_18-20) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-20-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_18-20) +exten => s,12,Return() exten => _sw-20-.,10,Voicemail(u${ext}) -exten => _sw-20-.,11,Goto(s\,10) +exten => _sw-20-.,11,Goto(s\,11) exten => sw-20-,10,Goto(sw-20-.|10) exten => sw-20-NOANSWER,10,Voicemail(u${ext}) -exten => sw-20-NOANSWER,11,Goto(s\,10) -exten => sw-20-ANSWER,10,Goto(s\,10) +exten => sw-20-NOANSWER,11,Goto(s\,11) +exten => sw-20-ANSWER,10,Goto(s\,11) exten => sw-20-BUSY,10,Voicemail(b${ext}) -exten => sw-20-BUSY,11,Goto(s\,10) +exten => sw-20-BUSY,11,Goto(s\,11) exten => sw-20-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-20-DONTCALL,11,Goto(s\,10) +exten => sw-20-DONTCALL,11,Goto(s\,11) exten => sw-20-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-20-TORTURE,11,Goto(s\,10) +exten => sw-20-TORTURE,11,Goto(s\,11) [std-priv-exten_19] @@ -505,21 +524,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-21-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_19-21) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-21-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_19-21) +exten => s,12,Return() exten => _sw-21-.,10,Voicemail(u${ext}) -exten => _sw-21-.,11,Goto(s\,10) +exten => _sw-21-.,11,Goto(s\,11) exten => sw-21-,10,Goto(sw-21-.|10) exten => sw-21-NOANSWER,10,Voicemail(u${ext}) -exten => sw-21-NOANSWER,11,Goto(s\,10) -exten => sw-21-ANSWER,10,Goto(s\,10) +exten => sw-21-NOANSWER,11,Goto(s\,11) +exten => sw-21-ANSWER,10,Goto(s\,11) exten => sw-21-BUSY,10,Voicemail(b${ext}) -exten => sw-21-BUSY,11,Goto(s\,10) +exten => sw-21-BUSY,11,Goto(s\,11) exten => sw-21-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-21-DONTCALL,11,Goto(s\,10) +exten => sw-21-DONTCALL,11,Goto(s\,11) exten => sw-21-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-21-TORTURE,11,Goto(s\,10) +exten => sw-21-TORTURE,11,Goto(s\,11) [std-priv-exten_20] @@ -531,21 +551,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-22-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_20-22) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-22-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_20-22) +exten => s,12,Return() exten => _sw-22-.,10,Voicemail(u${ext}) -exten => _sw-22-.,11,Goto(s\,10) +exten => _sw-22-.,11,Goto(s\,11) exten => sw-22-,10,Goto(sw-22-.|10) exten => sw-22-NOANSWER,10,Voicemail(u${ext}) -exten => sw-22-NOANSWER,11,Goto(s\,10) -exten => sw-22-ANSWER,10,Goto(s\,10) +exten => sw-22-NOANSWER,11,Goto(s\,11) +exten => sw-22-ANSWER,10,Goto(s\,11) exten => sw-22-BUSY,10,Voicemail(b${ext}) -exten => sw-22-BUSY,11,Goto(s\,10) +exten => sw-22-BUSY,11,Goto(s\,11) exten => sw-22-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-22-DONTCALL,11,Goto(s\,10) +exten => sw-22-DONTCALL,11,Goto(s\,11) exten => sw-22-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-22-TORTURE,11,Goto(s\,10) +exten => sw-22-TORTURE,11,Goto(s\,11) [std-priv-exten_21] @@ -557,21 +578,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-23-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_21-23) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-23-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_21-23) +exten => s,12,Return() exten => _sw-23-.,10,Voicemail(u${ext}) -exten => _sw-23-.,11,Goto(s\,10) +exten => _sw-23-.,11,Goto(s\,11) exten => sw-23-,10,Goto(sw-23-.|10) exten => sw-23-NOANSWER,10,Voicemail(u${ext}) -exten => sw-23-NOANSWER,11,Goto(s\,10) -exten => sw-23-ANSWER,10,Goto(s\,10) +exten => sw-23-NOANSWER,11,Goto(s\,11) +exten => sw-23-ANSWER,10,Goto(s\,11) exten => sw-23-BUSY,10,Voicemail(b${ext}) -exten => sw-23-BUSY,11,Goto(s\,10) +exten => sw-23-BUSY,11,Goto(s\,11) exten => sw-23-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-23-DONTCALL,11,Goto(s\,10) +exten => sw-23-DONTCALL,11,Goto(s\,11) exten => sw-23-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-23-TORTURE,11,Goto(s\,10) +exten => sw-23-TORTURE,11,Goto(s\,11) [std-priv-exten_22] @@ -583,21 +605,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-24-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_22-24) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-24-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_22-24) +exten => s,12,Return() exten => _sw-24-.,10,Voicemail(u${ext}) -exten => _sw-24-.,11,Goto(s\,10) +exten => _sw-24-.,11,Goto(s\,11) exten => sw-24-,10,Goto(sw-24-.|10) exten => sw-24-NOANSWER,10,Voicemail(u${ext}) -exten => sw-24-NOANSWER,11,Goto(s\,10) -exten => sw-24-ANSWER,10,Goto(s\,10) +exten => sw-24-NOANSWER,11,Goto(s\,11) +exten => sw-24-ANSWER,10,Goto(s\,11) exten => sw-24-BUSY,10,Voicemail(b${ext}) -exten => sw-24-BUSY,11,Goto(s\,10) +exten => sw-24-BUSY,11,Goto(s\,11) exten => sw-24-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-24-DONTCALL,11,Goto(s\,10) +exten => sw-24-DONTCALL,11,Goto(s\,11) exten => sw-24-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-24-TORTURE,11,Goto(s\,10) +exten => sw-24-TORTURE,11,Goto(s\,11) [std-priv-exten_23] @@ -609,21 +632,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-25-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_23-25) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-25-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_23-25) +exten => s,12,Return() exten => _sw-25-.,10,Voicemail(u${ext}) -exten => _sw-25-.,11,Goto(s\,10) +exten => _sw-25-.,11,Goto(s\,11) exten => sw-25-,10,Goto(sw-25-.|10) exten => sw-25-NOANSWER,10,Voicemail(u${ext}) -exten => sw-25-NOANSWER,11,Goto(s\,10) -exten => sw-25-ANSWER,10,Goto(s\,10) +exten => sw-25-NOANSWER,11,Goto(s\,11) +exten => sw-25-ANSWER,10,Goto(s\,11) exten => sw-25-BUSY,10,Voicemail(b${ext}) -exten => sw-25-BUSY,11,Goto(s\,10) +exten => sw-25-BUSY,11,Goto(s\,11) exten => sw-25-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-25-DONTCALL,11,Goto(s\,10) +exten => sw-25-DONTCALL,11,Goto(s\,11) exten => sw-25-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-25-TORTURE,11,Goto(s\,10) +exten => sw-25-TORTURE,11,Goto(s\,11) [std-priv-exten_24] @@ -635,21 +659,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-26-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_24-26) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-26-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_24-26) +exten => s,12,Return() exten => _sw-26-.,10,Voicemail(u${ext}) -exten => _sw-26-.,11,Goto(s\,10) +exten => _sw-26-.,11,Goto(s\,11) exten => sw-26-,10,Goto(sw-26-.|10) exten => sw-26-NOANSWER,10,Voicemail(u${ext}) -exten => sw-26-NOANSWER,11,Goto(s\,10) -exten => sw-26-ANSWER,10,Goto(s\,10) +exten => sw-26-NOANSWER,11,Goto(s\,11) +exten => sw-26-ANSWER,10,Goto(s\,11) exten => sw-26-BUSY,10,Voicemail(b${ext}) -exten => sw-26-BUSY,11,Goto(s\,10) +exten => sw-26-BUSY,11,Goto(s\,11) exten => sw-26-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-26-DONTCALL,11,Goto(s\,10) +exten => sw-26-DONTCALL,11,Goto(s\,11) exten => sw-26-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-26-TORTURE,11,Goto(s\,10) +exten => sw-26-TORTURE,11,Goto(s\,11) [std-priv-exten_25] @@ -661,21 +686,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-27-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_25-27) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-27-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_25-27) +exten => s,12,Return() exten => _sw-27-.,10,Voicemail(u${ext}) -exten => _sw-27-.,11,Goto(s\,10) +exten => _sw-27-.,11,Goto(s\,11) exten => sw-27-,10,Goto(sw-27-.|10) exten => sw-27-NOANSWER,10,Voicemail(u${ext}) -exten => sw-27-NOANSWER,11,Goto(s\,10) -exten => sw-27-ANSWER,10,Goto(s\,10) +exten => sw-27-NOANSWER,11,Goto(s\,11) +exten => sw-27-ANSWER,10,Goto(s\,11) exten => sw-27-BUSY,10,Voicemail(b${ext}) -exten => sw-27-BUSY,11,Goto(s\,10) +exten => sw-27-BUSY,11,Goto(s\,11) exten => sw-27-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-27-DONTCALL,11,Goto(s\,10) +exten => sw-27-DONTCALL,11,Goto(s\,11) exten => sw-27-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-27-TORTURE,11,Goto(s\,10) +exten => sw-27-TORTURE,11,Goto(s\,11) [std-priv-exten_26] @@ -687,21 +713,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-28-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_26-28) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-28-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_26-28) +exten => s,12,Return() exten => _sw-28-.,10,Voicemail(u${ext}) -exten => _sw-28-.,11,Goto(s\,10) +exten => _sw-28-.,11,Goto(s\,11) exten => sw-28-,10,Goto(sw-28-.|10) exten => sw-28-NOANSWER,10,Voicemail(u${ext}) -exten => sw-28-NOANSWER,11,Goto(s\,10) -exten => sw-28-ANSWER,10,Goto(s\,10) +exten => sw-28-NOANSWER,11,Goto(s\,11) +exten => sw-28-ANSWER,10,Goto(s\,11) exten => sw-28-BUSY,10,Voicemail(b${ext}) -exten => sw-28-BUSY,11,Goto(s\,10) +exten => sw-28-BUSY,11,Goto(s\,11) exten => sw-28-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-28-DONTCALL,11,Goto(s\,10) +exten => sw-28-DONTCALL,11,Goto(s\,11) exten => sw-28-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-28-TORTURE,11,Goto(s\,10) +exten => sw-28-TORTURE,11,Goto(s\,11) [std-priv-exten_27] @@ -713,21 +740,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-29-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_27-29) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-29-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_27-29) +exten => s,12,Return() exten => _sw-29-.,10,Voicemail(u${ext}) -exten => _sw-29-.,11,Goto(s\,10) +exten => _sw-29-.,11,Goto(s\,11) exten => sw-29-,10,Goto(sw-29-.|10) exten => sw-29-NOANSWER,10,Voicemail(u${ext}) -exten => sw-29-NOANSWER,11,Goto(s\,10) -exten => sw-29-ANSWER,10,Goto(s\,10) +exten => sw-29-NOANSWER,11,Goto(s\,11) +exten => sw-29-ANSWER,10,Goto(s\,11) exten => sw-29-BUSY,10,Voicemail(b${ext}) -exten => sw-29-BUSY,11,Goto(s\,10) +exten => sw-29-BUSY,11,Goto(s\,11) exten => sw-29-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-29-DONTCALL,11,Goto(s\,10) +exten => sw-29-DONTCALL,11,Goto(s\,11) exten => sw-29-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-29-TORTURE,11,Goto(s\,10) +exten => sw-29-TORTURE,11,Goto(s\,11) [std-priv-exten_28] @@ -739,21 +767,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-30-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_28-30) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-30-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_28-30) +exten => s,12,Return() exten => _sw-30-.,10,Voicemail(u${ext}) -exten => _sw-30-.,11,Goto(s\,10) +exten => _sw-30-.,11,Goto(s\,11) exten => sw-30-,10,Goto(sw-30-.|10) exten => sw-30-NOANSWER,10,Voicemail(u${ext}) -exten => sw-30-NOANSWER,11,Goto(s\,10) -exten => sw-30-ANSWER,10,Goto(s\,10) +exten => sw-30-NOANSWER,11,Goto(s\,11) +exten => sw-30-ANSWER,10,Goto(s\,11) exten => sw-30-BUSY,10,Voicemail(b${ext}) -exten => sw-30-BUSY,11,Goto(s\,10) +exten => sw-30-BUSY,11,Goto(s\,11) exten => sw-30-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-30-DONTCALL,11,Goto(s\,10) +exten => sw-30-DONTCALL,11,Goto(s\,11) exten => sw-30-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-30-TORTURE,11,Goto(s\,10) +exten => sw-30-TORTURE,11,Goto(s\,11) [std-priv-exten_29] @@ -765,21 +794,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-31-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_29-31) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-31-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_29-31) +exten => s,12,Return() exten => _sw-31-.,10,Voicemail(u${ext}) -exten => _sw-31-.,11,Goto(s\,10) +exten => _sw-31-.,11,Goto(s\,11) exten => sw-31-,10,Goto(sw-31-.|10) exten => sw-31-NOANSWER,10,Voicemail(u${ext}) -exten => sw-31-NOANSWER,11,Goto(s\,10) -exten => sw-31-ANSWER,10,Goto(s\,10) +exten => sw-31-NOANSWER,11,Goto(s\,11) +exten => sw-31-ANSWER,10,Goto(s\,11) exten => sw-31-BUSY,10,Voicemail(b${ext}) -exten => sw-31-BUSY,11,Goto(s\,10) +exten => sw-31-BUSY,11,Goto(s\,11) exten => sw-31-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-31-DONTCALL,11,Goto(s\,10) +exten => sw-31-DONTCALL,11,Goto(s\,11) exten => sw-31-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-31-TORTURE,11,Goto(s\,10) +exten => sw-31-TORTURE,11,Goto(s\,11) [std-priv-exten_30] @@ -791,21 +821,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-32-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_30-32) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-32-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_30-32) +exten => s,12,Return() exten => _sw-32-.,10,Voicemail(u${ext}) -exten => _sw-32-.,11,Goto(s\,10) +exten => _sw-32-.,11,Goto(s\,11) exten => sw-32-,10,Goto(sw-32-.|10) exten => sw-32-NOANSWER,10,Voicemail(u${ext}) -exten => sw-32-NOANSWER,11,Goto(s\,10) -exten => sw-32-ANSWER,10,Goto(s\,10) +exten => sw-32-NOANSWER,11,Goto(s\,11) +exten => sw-32-ANSWER,10,Goto(s\,11) exten => sw-32-BUSY,10,Voicemail(b${ext}) -exten => sw-32-BUSY,11,Goto(s\,10) +exten => sw-32-BUSY,11,Goto(s\,11) exten => sw-32-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-32-DONTCALL,11,Goto(s\,10) +exten => sw-32-DONTCALL,11,Goto(s\,11) exten => sw-32-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-32-TORTURE,11,Goto(s\,10) +exten => sw-32-TORTURE,11,Goto(s\,11) [std-priv-exten_31] @@ -817,21 +848,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-33-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_31-33) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-33-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_31-33) +exten => s,12,Return() exten => _sw-33-.,10,Voicemail(u${ext}) -exten => _sw-33-.,11,Goto(s\,10) +exten => _sw-33-.,11,Goto(s\,11) exten => sw-33-,10,Goto(sw-33-.|10) exten => sw-33-NOANSWER,10,Voicemail(u${ext}) -exten => sw-33-NOANSWER,11,Goto(s\,10) -exten => sw-33-ANSWER,10,Goto(s\,10) +exten => sw-33-NOANSWER,11,Goto(s\,11) +exten => sw-33-ANSWER,10,Goto(s\,11) exten => sw-33-BUSY,10,Voicemail(b${ext}) -exten => sw-33-BUSY,11,Goto(s\,10) +exten => sw-33-BUSY,11,Goto(s\,11) exten => sw-33-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-33-DONTCALL,11,Goto(s\,10) +exten => sw-33-DONTCALL,11,Goto(s\,11) exten => sw-33-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-33-TORTURE,11,Goto(s\,10) +exten => sw-33-TORTURE,11,Goto(s\,11) [std-priv-exten_32] @@ -843,21 +875,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-34-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_32-34) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-34-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_32-34) +exten => s,12,Return() exten => _sw-34-.,10,Voicemail(u${ext}) -exten => _sw-34-.,11,Goto(s\,10) +exten => _sw-34-.,11,Goto(s\,11) exten => sw-34-,10,Goto(sw-34-.|10) exten => sw-34-NOANSWER,10,Voicemail(u${ext}) -exten => sw-34-NOANSWER,11,Goto(s\,10) -exten => sw-34-ANSWER,10,Goto(s\,10) +exten => sw-34-NOANSWER,11,Goto(s\,11) +exten => sw-34-ANSWER,10,Goto(s\,11) exten => sw-34-BUSY,10,Voicemail(b${ext}) -exten => sw-34-BUSY,11,Goto(s\,10) +exten => sw-34-BUSY,11,Goto(s\,11) exten => sw-34-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-34-DONTCALL,11,Goto(s\,10) +exten => sw-34-DONTCALL,11,Goto(s\,11) exten => sw-34-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-34-TORTURE,11,Goto(s\,10) +exten => sw-34-TORTURE,11,Goto(s\,11) [std-priv-exten_33] @@ -869,21 +902,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-35-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_33-35) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-35-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_33-35) +exten => s,12,Return() exten => _sw-35-.,10,Voicemail(u${ext}) -exten => _sw-35-.,11,Goto(s\,10) +exten => _sw-35-.,11,Goto(s\,11) exten => sw-35-,10,Goto(sw-35-.|10) exten => sw-35-NOANSWER,10,Voicemail(u${ext}) -exten => sw-35-NOANSWER,11,Goto(s\,10) -exten => sw-35-ANSWER,10,Goto(s\,10) +exten => sw-35-NOANSWER,11,Goto(s\,11) +exten => sw-35-ANSWER,10,Goto(s\,11) exten => sw-35-BUSY,10,Voicemail(b${ext}) -exten => sw-35-BUSY,11,Goto(s\,10) +exten => sw-35-BUSY,11,Goto(s\,11) exten => sw-35-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-35-DONTCALL,11,Goto(s\,10) +exten => sw-35-DONTCALL,11,Goto(s\,11) exten => sw-35-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-35-TORTURE,11,Goto(s\,10) +exten => sw-35-TORTURE,11,Goto(s\,11) [std-priv-exten_34] @@ -895,21 +929,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-36-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_34-36) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-36-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_34-36) +exten => s,12,Return() exten => _sw-36-.,10,Voicemail(u${ext}) -exten => _sw-36-.,11,Goto(s\,10) +exten => _sw-36-.,11,Goto(s\,11) exten => sw-36-,10,Goto(sw-36-.|10) exten => sw-36-NOANSWER,10,Voicemail(u${ext}) -exten => sw-36-NOANSWER,11,Goto(s\,10) -exten => sw-36-ANSWER,10,Goto(s\,10) +exten => sw-36-NOANSWER,11,Goto(s\,11) +exten => sw-36-ANSWER,10,Goto(s\,11) exten => sw-36-BUSY,10,Voicemail(b${ext}) -exten => sw-36-BUSY,11,Goto(s\,10) +exten => sw-36-BUSY,11,Goto(s\,11) exten => sw-36-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-36-DONTCALL,11,Goto(s\,10) +exten => sw-36-DONTCALL,11,Goto(s\,11) exten => sw-36-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-36-TORTURE,11,Goto(s\,10) +exten => sw-36-TORTURE,11,Goto(s\,11) [std-priv-exten_35] @@ -921,21 +956,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-37-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_35-37) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-37-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_35-37) +exten => s,12,Return() exten => _sw-37-.,10,Voicemail(u${ext}) -exten => _sw-37-.,11,Goto(s\,10) +exten => _sw-37-.,11,Goto(s\,11) exten => sw-37-,10,Goto(sw-37-.|10) exten => sw-37-NOANSWER,10,Voicemail(u${ext}) -exten => sw-37-NOANSWER,11,Goto(s\,10) -exten => sw-37-ANSWER,10,Goto(s\,10) +exten => sw-37-NOANSWER,11,Goto(s\,11) +exten => sw-37-ANSWER,10,Goto(s\,11) exten => sw-37-BUSY,10,Voicemail(b${ext}) -exten => sw-37-BUSY,11,Goto(s\,10) +exten => sw-37-BUSY,11,Goto(s\,11) exten => sw-37-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-37-DONTCALL,11,Goto(s\,10) +exten => sw-37-DONTCALL,11,Goto(s\,11) exten => sw-37-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-37-TORTURE,11,Goto(s\,10) +exten => sw-37-TORTURE,11,Goto(s\,11) [std-priv-exten_36] @@ -947,21 +983,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-38-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_36-38) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-38-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_36-38) +exten => s,12,Return() exten => _sw-38-.,10,Voicemail(u${ext}) -exten => _sw-38-.,11,Goto(s\,10) +exten => _sw-38-.,11,Goto(s\,11) exten => sw-38-,10,Goto(sw-38-.|10) exten => sw-38-NOANSWER,10,Voicemail(u${ext}) -exten => sw-38-NOANSWER,11,Goto(s\,10) -exten => sw-38-ANSWER,10,Goto(s\,10) +exten => sw-38-NOANSWER,11,Goto(s\,11) +exten => sw-38-ANSWER,10,Goto(s\,11) exten => sw-38-BUSY,10,Voicemail(b${ext}) -exten => sw-38-BUSY,11,Goto(s\,10) +exten => sw-38-BUSY,11,Goto(s\,11) exten => sw-38-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-38-DONTCALL,11,Goto(s\,10) +exten => sw-38-DONTCALL,11,Goto(s\,11) exten => sw-38-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-38-TORTURE,11,Goto(s\,10) +exten => sw-38-TORTURE,11,Goto(s\,11) [std-priv-exten_37] @@ -973,21 +1010,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-39-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_37-39) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-39-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_37-39) +exten => s,12,Return() exten => _sw-39-.,10,Voicemail(u${ext}) -exten => _sw-39-.,11,Goto(s\,10) +exten => _sw-39-.,11,Goto(s\,11) exten => sw-39-,10,Goto(sw-39-.|10) exten => sw-39-NOANSWER,10,Voicemail(u${ext}) -exten => sw-39-NOANSWER,11,Goto(s\,10) -exten => sw-39-ANSWER,10,Goto(s\,10) +exten => sw-39-NOANSWER,11,Goto(s\,11) +exten => sw-39-ANSWER,10,Goto(s\,11) exten => sw-39-BUSY,10,Voicemail(b${ext}) -exten => sw-39-BUSY,11,Goto(s\,10) +exten => sw-39-BUSY,11,Goto(s\,11) exten => sw-39-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-39-DONTCALL,11,Goto(s\,10) +exten => sw-39-DONTCALL,11,Goto(s\,11) exten => sw-39-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-39-TORTURE,11,Goto(s\,10) +exten => sw-39-TORTURE,11,Goto(s\,11) [std-priv-exten_38] @@ -999,21 +1037,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-40-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_38-40) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-40-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_38-40) +exten => s,12,Return() exten => _sw-40-.,10,Voicemail(u${ext}) -exten => _sw-40-.,11,Goto(s\,10) +exten => _sw-40-.,11,Goto(s\,11) exten => sw-40-,10,Goto(sw-40-.|10) exten => sw-40-NOANSWER,10,Voicemail(u${ext}) -exten => sw-40-NOANSWER,11,Goto(s\,10) -exten => sw-40-ANSWER,10,Goto(s\,10) +exten => sw-40-NOANSWER,11,Goto(s\,11) +exten => sw-40-ANSWER,10,Goto(s\,11) exten => sw-40-BUSY,10,Voicemail(b${ext}) -exten => sw-40-BUSY,11,Goto(s\,10) +exten => sw-40-BUSY,11,Goto(s\,11) exten => sw-40-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-40-DONTCALL,11,Goto(s\,10) +exten => sw-40-DONTCALL,11,Goto(s\,11) exten => sw-40-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-40-TORTURE,11,Goto(s\,10) +exten => sw-40-TORTURE,11,Goto(s\,11) [std-priv-exten_39] @@ -1025,21 +1064,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-41-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_39-41) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-41-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_39-41) +exten => s,12,Return() exten => _sw-41-.,10,Voicemail(u${ext}) -exten => _sw-41-.,11,Goto(s\,10) +exten => _sw-41-.,11,Goto(s\,11) exten => sw-41-,10,Goto(sw-41-.|10) exten => sw-41-NOANSWER,10,Voicemail(u${ext}) -exten => sw-41-NOANSWER,11,Goto(s\,10) -exten => sw-41-ANSWER,10,Goto(s\,10) +exten => sw-41-NOANSWER,11,Goto(s\,11) +exten => sw-41-ANSWER,10,Goto(s\,11) exten => sw-41-BUSY,10,Voicemail(b${ext}) -exten => sw-41-BUSY,11,Goto(s\,10) +exten => sw-41-BUSY,11,Goto(s\,11) exten => sw-41-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-41-DONTCALL,11,Goto(s\,10) +exten => sw-41-DONTCALL,11,Goto(s\,11) exten => sw-41-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-41-TORTURE,11,Goto(s\,10) +exten => sw-41-TORTURE,11,Goto(s\,11) [std-priv-exten_40] @@ -1051,21 +1091,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-42-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_40-42) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-42-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_40-42) +exten => s,12,Return() exten => _sw-42-.,10,Voicemail(u${ext}) -exten => _sw-42-.,11,Goto(s\,10) +exten => _sw-42-.,11,Goto(s\,11) exten => sw-42-,10,Goto(sw-42-.|10) exten => sw-42-NOANSWER,10,Voicemail(u${ext}) -exten => sw-42-NOANSWER,11,Goto(s\,10) -exten => sw-42-ANSWER,10,Goto(s\,10) +exten => sw-42-NOANSWER,11,Goto(s\,11) +exten => sw-42-ANSWER,10,Goto(s\,11) exten => sw-42-BUSY,10,Voicemail(b${ext}) -exten => sw-42-BUSY,11,Goto(s\,10) +exten => sw-42-BUSY,11,Goto(s\,11) exten => sw-42-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-42-DONTCALL,11,Goto(s\,10) +exten => sw-42-DONTCALL,11,Goto(s\,11) exten => sw-42-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-42-TORTURE,11,Goto(s\,10) +exten => sw-42-TORTURE,11,Goto(s\,11) [std-priv-exten_41] @@ -1077,21 +1118,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-43-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_41-43) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-43-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_41-43) +exten => s,12,Return() exten => _sw-43-.,10,Voicemail(u${ext}) -exten => _sw-43-.,11,Goto(s\,10) +exten => _sw-43-.,11,Goto(s\,11) exten => sw-43-,10,Goto(sw-43-.|10) exten => sw-43-NOANSWER,10,Voicemail(u${ext}) -exten => sw-43-NOANSWER,11,Goto(s\,10) -exten => sw-43-ANSWER,10,Goto(s\,10) +exten => sw-43-NOANSWER,11,Goto(s\,11) +exten => sw-43-ANSWER,10,Goto(s\,11) exten => sw-43-BUSY,10,Voicemail(b${ext}) -exten => sw-43-BUSY,11,Goto(s\,10) +exten => sw-43-BUSY,11,Goto(s\,11) exten => sw-43-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-43-DONTCALL,11,Goto(s\,10) +exten => sw-43-DONTCALL,11,Goto(s\,11) exten => sw-43-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-43-TORTURE,11,Goto(s\,10) +exten => sw-43-TORTURE,11,Goto(s\,11) [std-priv-exten_42] @@ -1103,21 +1145,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-44-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_42-44) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-44-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_42-44) +exten => s,12,Return() exten => _sw-44-.,10,Voicemail(u${ext}) -exten => _sw-44-.,11,Goto(s\,10) +exten => _sw-44-.,11,Goto(s\,11) exten => sw-44-,10,Goto(sw-44-.|10) exten => sw-44-NOANSWER,10,Voicemail(u${ext}) -exten => sw-44-NOANSWER,11,Goto(s\,10) -exten => sw-44-ANSWER,10,Goto(s\,10) +exten => sw-44-NOANSWER,11,Goto(s\,11) +exten => sw-44-ANSWER,10,Goto(s\,11) exten => sw-44-BUSY,10,Voicemail(b${ext}) -exten => sw-44-BUSY,11,Goto(s\,10) +exten => sw-44-BUSY,11,Goto(s\,11) exten => sw-44-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-44-DONTCALL,11,Goto(s\,10) +exten => sw-44-DONTCALL,11,Goto(s\,11) exten => sw-44-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-44-TORTURE,11,Goto(s\,10) +exten => sw-44-TORTURE,11,Goto(s\,11) [std-priv-exten_43] @@ -1129,21 +1172,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-45-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_43-45) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-45-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_43-45) +exten => s,12,Return() exten => _sw-45-.,10,Voicemail(u${ext}) -exten => _sw-45-.,11,Goto(s\,10) +exten => _sw-45-.,11,Goto(s\,11) exten => sw-45-,10,Goto(sw-45-.|10) exten => sw-45-NOANSWER,10,Voicemail(u${ext}) -exten => sw-45-NOANSWER,11,Goto(s\,10) -exten => sw-45-ANSWER,10,Goto(s\,10) +exten => sw-45-NOANSWER,11,Goto(s\,11) +exten => sw-45-ANSWER,10,Goto(s\,11) exten => sw-45-BUSY,10,Voicemail(b${ext}) -exten => sw-45-BUSY,11,Goto(s\,10) +exten => sw-45-BUSY,11,Goto(s\,11) exten => sw-45-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-45-DONTCALL,11,Goto(s\,10) +exten => sw-45-DONTCALL,11,Goto(s\,11) exten => sw-45-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-45-TORTURE,11,Goto(s\,10) +exten => sw-45-TORTURE,11,Goto(s\,11) [std-priv-exten_44] @@ -1155,21 +1199,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-46-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_44-46) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-46-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_44-46) +exten => s,12,Return() exten => _sw-46-.,10,Voicemail(u${ext}) -exten => _sw-46-.,11,Goto(s\,10) +exten => _sw-46-.,11,Goto(s\,11) exten => sw-46-,10,Goto(sw-46-.|10) exten => sw-46-NOANSWER,10,Voicemail(u${ext}) -exten => sw-46-NOANSWER,11,Goto(s\,10) -exten => sw-46-ANSWER,10,Goto(s\,10) +exten => sw-46-NOANSWER,11,Goto(s\,11) +exten => sw-46-ANSWER,10,Goto(s\,11) exten => sw-46-BUSY,10,Voicemail(b${ext}) -exten => sw-46-BUSY,11,Goto(s\,10) +exten => sw-46-BUSY,11,Goto(s\,11) exten => sw-46-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-46-DONTCALL,11,Goto(s\,10) +exten => sw-46-DONTCALL,11,Goto(s\,11) exten => sw-46-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-46-TORTURE,11,Goto(s\,10) +exten => sw-46-TORTURE,11,Goto(s\,11) [std-priv-exten_45] @@ -1181,21 +1226,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-47-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_45-47) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-47-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_45-47) +exten => s,12,Return() exten => _sw-47-.,10,Voicemail(u${ext}) -exten => _sw-47-.,11,Goto(s\,10) +exten => _sw-47-.,11,Goto(s\,11) exten => sw-47-,10,Goto(sw-47-.|10) exten => sw-47-NOANSWER,10,Voicemail(u${ext}) -exten => sw-47-NOANSWER,11,Goto(s\,10) -exten => sw-47-ANSWER,10,Goto(s\,10) +exten => sw-47-NOANSWER,11,Goto(s\,11) +exten => sw-47-ANSWER,10,Goto(s\,11) exten => sw-47-BUSY,10,Voicemail(b${ext}) -exten => sw-47-BUSY,11,Goto(s\,10) +exten => sw-47-BUSY,11,Goto(s\,11) exten => sw-47-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-47-DONTCALL,11,Goto(s\,10) +exten => sw-47-DONTCALL,11,Goto(s\,11) exten => sw-47-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-47-TORTURE,11,Goto(s\,10) +exten => sw-47-TORTURE,11,Goto(s\,11) [std-priv-exten_46] @@ -1207,21 +1253,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-48-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_46-48) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-48-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_46-48) +exten => s,12,Return() exten => _sw-48-.,10,Voicemail(u${ext}) -exten => _sw-48-.,11,Goto(s\,10) +exten => _sw-48-.,11,Goto(s\,11) exten => sw-48-,10,Goto(sw-48-.|10) exten => sw-48-NOANSWER,10,Voicemail(u${ext}) -exten => sw-48-NOANSWER,11,Goto(s\,10) -exten => sw-48-ANSWER,10,Goto(s\,10) +exten => sw-48-NOANSWER,11,Goto(s\,11) +exten => sw-48-ANSWER,10,Goto(s\,11) exten => sw-48-BUSY,10,Voicemail(b${ext}) -exten => sw-48-BUSY,11,Goto(s\,10) +exten => sw-48-BUSY,11,Goto(s\,11) exten => sw-48-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-48-DONTCALL,11,Goto(s\,10) +exten => sw-48-DONTCALL,11,Goto(s\,11) exten => sw-48-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-48-TORTURE,11,Goto(s\,10) +exten => sw-48-TORTURE,11,Goto(s\,11) [std-priv-exten_47] @@ -1233,21 +1280,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-49-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_47-49) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-49-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_47-49) +exten => s,12,Return() exten => _sw-49-.,10,Voicemail(u${ext}) -exten => _sw-49-.,11,Goto(s\,10) +exten => _sw-49-.,11,Goto(s\,11) exten => sw-49-,10,Goto(sw-49-.|10) exten => sw-49-NOANSWER,10,Voicemail(u${ext}) -exten => sw-49-NOANSWER,11,Goto(s\,10) -exten => sw-49-ANSWER,10,Goto(s\,10) +exten => sw-49-NOANSWER,11,Goto(s\,11) +exten => sw-49-ANSWER,10,Goto(s\,11) exten => sw-49-BUSY,10,Voicemail(b${ext}) -exten => sw-49-BUSY,11,Goto(s\,10) +exten => sw-49-BUSY,11,Goto(s\,11) exten => sw-49-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-49-DONTCALL,11,Goto(s\,10) +exten => sw-49-DONTCALL,11,Goto(s\,11) exten => sw-49-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-49-TORTURE,11,Goto(s\,10) +exten => sw-49-TORTURE,11,Goto(s\,11) [std-priv-exten_48] @@ -1259,21 +1307,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-50-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_48-50) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-50-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_48-50) +exten => s,12,Return() exten => _sw-50-.,10,Voicemail(u${ext}) -exten => _sw-50-.,11,Goto(s\,10) +exten => _sw-50-.,11,Goto(s\,11) exten => sw-50-,10,Goto(sw-50-.|10) exten => sw-50-NOANSWER,10,Voicemail(u${ext}) -exten => sw-50-NOANSWER,11,Goto(s\,10) -exten => sw-50-ANSWER,10,Goto(s\,10) +exten => sw-50-NOANSWER,11,Goto(s\,11) +exten => sw-50-ANSWER,10,Goto(s\,11) exten => sw-50-BUSY,10,Voicemail(b${ext}) -exten => sw-50-BUSY,11,Goto(s\,10) +exten => sw-50-BUSY,11,Goto(s\,11) exten => sw-50-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-50-DONTCALL,11,Goto(s\,10) +exten => sw-50-DONTCALL,11,Goto(s\,11) exten => sw-50-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-50-TORTURE,11,Goto(s\,10) +exten => sw-50-TORTURE,11,Goto(s\,11) [std-priv-exten_49] @@ -1285,21 +1334,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-51-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_49-51) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-51-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_49-51) +exten => s,12,Return() exten => _sw-51-.,10,Voicemail(u${ext}) -exten => _sw-51-.,11,Goto(s\,10) +exten => _sw-51-.,11,Goto(s\,11) exten => sw-51-,10,Goto(sw-51-.|10) exten => sw-51-NOANSWER,10,Voicemail(u${ext}) -exten => sw-51-NOANSWER,11,Goto(s\,10) -exten => sw-51-ANSWER,10,Goto(s\,10) +exten => sw-51-NOANSWER,11,Goto(s\,11) +exten => sw-51-ANSWER,10,Goto(s\,11) exten => sw-51-BUSY,10,Voicemail(b${ext}) -exten => sw-51-BUSY,11,Goto(s\,10) +exten => sw-51-BUSY,11,Goto(s\,11) exten => sw-51-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-51-DONTCALL,11,Goto(s\,10) +exten => sw-51-DONTCALL,11,Goto(s\,11) exten => sw-51-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-51-TORTURE,11,Goto(s\,10) +exten => sw-51-TORTURE,11,Goto(s\,11) [std-priv-exten_50] @@ -1311,21 +1361,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-52-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_50-52) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-52-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_50-52) +exten => s,12,Return() exten => _sw-52-.,10,Voicemail(u${ext}) -exten => _sw-52-.,11,Goto(s\,10) +exten => _sw-52-.,11,Goto(s\,11) exten => sw-52-,10,Goto(sw-52-.|10) exten => sw-52-NOANSWER,10,Voicemail(u${ext}) -exten => sw-52-NOANSWER,11,Goto(s\,10) -exten => sw-52-ANSWER,10,Goto(s\,10) +exten => sw-52-NOANSWER,11,Goto(s\,11) +exten => sw-52-ANSWER,10,Goto(s\,11) exten => sw-52-BUSY,10,Voicemail(b${ext}) -exten => sw-52-BUSY,11,Goto(s\,10) +exten => sw-52-BUSY,11,Goto(s\,11) exten => sw-52-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-52-DONTCALL,11,Goto(s\,10) +exten => sw-52-DONTCALL,11,Goto(s\,11) exten => sw-52-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-52-TORTURE,11,Goto(s\,10) +exten => sw-52-TORTURE,11,Goto(s\,11) [std-priv-exten_51] @@ -1337,21 +1388,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-53-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_51-53) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-53-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_51-53) +exten => s,12,Return() exten => _sw-53-.,10,Voicemail(u${ext}) -exten => _sw-53-.,11,Goto(s\,10) +exten => _sw-53-.,11,Goto(s\,11) exten => sw-53-,10,Goto(sw-53-.|10) exten => sw-53-NOANSWER,10,Voicemail(u${ext}) -exten => sw-53-NOANSWER,11,Goto(s\,10) -exten => sw-53-ANSWER,10,Goto(s\,10) +exten => sw-53-NOANSWER,11,Goto(s\,11) +exten => sw-53-ANSWER,10,Goto(s\,11) exten => sw-53-BUSY,10,Voicemail(b${ext}) -exten => sw-53-BUSY,11,Goto(s\,10) +exten => sw-53-BUSY,11,Goto(s\,11) exten => sw-53-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-53-DONTCALL,11,Goto(s\,10) +exten => sw-53-DONTCALL,11,Goto(s\,11) exten => sw-53-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-53-TORTURE,11,Goto(s\,10) +exten => sw-53-TORTURE,11,Goto(s\,11) [std-priv-exten_52] @@ -1363,21 +1415,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-54-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_52-54) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-54-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_52-54) +exten => s,12,Return() exten => _sw-54-.,10,Voicemail(u${ext}) -exten => _sw-54-.,11,Goto(s\,10) +exten => _sw-54-.,11,Goto(s\,11) exten => sw-54-,10,Goto(sw-54-.|10) exten => sw-54-NOANSWER,10,Voicemail(u${ext}) -exten => sw-54-NOANSWER,11,Goto(s\,10) -exten => sw-54-ANSWER,10,Goto(s\,10) +exten => sw-54-NOANSWER,11,Goto(s\,11) +exten => sw-54-ANSWER,10,Goto(s\,11) exten => sw-54-BUSY,10,Voicemail(b${ext}) -exten => sw-54-BUSY,11,Goto(s\,10) +exten => sw-54-BUSY,11,Goto(s\,11) exten => sw-54-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-54-DONTCALL,11,Goto(s\,10) +exten => sw-54-DONTCALL,11,Goto(s\,11) exten => sw-54-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-54-TORTURE,11,Goto(s\,10) +exten => sw-54-TORTURE,11,Goto(s\,11) [std-priv-exten_53] @@ -1389,21 +1442,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-55-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_53-55) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-55-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_53-55) +exten => s,12,Return() exten => _sw-55-.,10,Voicemail(u${ext}) -exten => _sw-55-.,11,Goto(s\,10) +exten => _sw-55-.,11,Goto(s\,11) exten => sw-55-,10,Goto(sw-55-.|10) exten => sw-55-NOANSWER,10,Voicemail(u${ext}) -exten => sw-55-NOANSWER,11,Goto(s\,10) -exten => sw-55-ANSWER,10,Goto(s\,10) +exten => sw-55-NOANSWER,11,Goto(s\,11) +exten => sw-55-ANSWER,10,Goto(s\,11) exten => sw-55-BUSY,10,Voicemail(b${ext}) -exten => sw-55-BUSY,11,Goto(s\,10) +exten => sw-55-BUSY,11,Goto(s\,11) exten => sw-55-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-55-DONTCALL,11,Goto(s\,10) +exten => sw-55-DONTCALL,11,Goto(s\,11) exten => sw-55-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-55-TORTURE,11,Goto(s\,10) +exten => sw-55-TORTURE,11,Goto(s\,11) [std-priv-exten_54] @@ -1415,21 +1469,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-56-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_54-56) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-56-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_54-56) +exten => s,12,Return() exten => _sw-56-.,10,Voicemail(u${ext}) -exten => _sw-56-.,11,Goto(s\,10) +exten => _sw-56-.,11,Goto(s\,11) exten => sw-56-,10,Goto(sw-56-.|10) exten => sw-56-NOANSWER,10,Voicemail(u${ext}) -exten => sw-56-NOANSWER,11,Goto(s\,10) -exten => sw-56-ANSWER,10,Goto(s\,10) +exten => sw-56-NOANSWER,11,Goto(s\,11) +exten => sw-56-ANSWER,10,Goto(s\,11) exten => sw-56-BUSY,10,Voicemail(b${ext}) -exten => sw-56-BUSY,11,Goto(s\,10) +exten => sw-56-BUSY,11,Goto(s\,11) exten => sw-56-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-56-DONTCALL,11,Goto(s\,10) +exten => sw-56-DONTCALL,11,Goto(s\,11) exten => sw-56-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-56-TORTURE,11,Goto(s\,10) +exten => sw-56-TORTURE,11,Goto(s\,11) [std-priv-exten_55] @@ -1441,21 +1496,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-57-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_55-57) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-57-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_55-57) +exten => s,12,Return() exten => _sw-57-.,10,Voicemail(u${ext}) -exten => _sw-57-.,11,Goto(s\,10) +exten => _sw-57-.,11,Goto(s\,11) exten => sw-57-,10,Goto(sw-57-.|10) exten => sw-57-NOANSWER,10,Voicemail(u${ext}) -exten => sw-57-NOANSWER,11,Goto(s\,10) -exten => sw-57-ANSWER,10,Goto(s\,10) +exten => sw-57-NOANSWER,11,Goto(s\,11) +exten => sw-57-ANSWER,10,Goto(s\,11) exten => sw-57-BUSY,10,Voicemail(b${ext}) -exten => sw-57-BUSY,11,Goto(s\,10) +exten => sw-57-BUSY,11,Goto(s\,11) exten => sw-57-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-57-DONTCALL,11,Goto(s\,10) +exten => sw-57-DONTCALL,11,Goto(s\,11) exten => sw-57-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-57-TORTURE,11,Goto(s\,10) +exten => sw-57-TORTURE,11,Goto(s\,11) [std-priv-exten_56] @@ -1467,21 +1523,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-58-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_56-58) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-58-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_56-58) +exten => s,12,Return() exten => _sw-58-.,10,Voicemail(u${ext}) -exten => _sw-58-.,11,Goto(s\,10) +exten => _sw-58-.,11,Goto(s\,11) exten => sw-58-,10,Goto(sw-58-.|10) exten => sw-58-NOANSWER,10,Voicemail(u${ext}) -exten => sw-58-NOANSWER,11,Goto(s\,10) -exten => sw-58-ANSWER,10,Goto(s\,10) +exten => sw-58-NOANSWER,11,Goto(s\,11) +exten => sw-58-ANSWER,10,Goto(s\,11) exten => sw-58-BUSY,10,Voicemail(b${ext}) -exten => sw-58-BUSY,11,Goto(s\,10) +exten => sw-58-BUSY,11,Goto(s\,11) exten => sw-58-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-58-DONTCALL,11,Goto(s\,10) +exten => sw-58-DONTCALL,11,Goto(s\,11) exten => sw-58-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-58-TORTURE,11,Goto(s\,10) +exten => sw-58-TORTURE,11,Goto(s\,11) [std-priv-exten_57] @@ -1493,21 +1550,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-59-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_57-59) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-59-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_57-59) +exten => s,12,Return() exten => _sw-59-.,10,Voicemail(u${ext}) -exten => _sw-59-.,11,Goto(s\,10) +exten => _sw-59-.,11,Goto(s\,11) exten => sw-59-,10,Goto(sw-59-.|10) exten => sw-59-NOANSWER,10,Voicemail(u${ext}) -exten => sw-59-NOANSWER,11,Goto(s\,10) -exten => sw-59-ANSWER,10,Goto(s\,10) +exten => sw-59-NOANSWER,11,Goto(s\,11) +exten => sw-59-ANSWER,10,Goto(s\,11) exten => sw-59-BUSY,10,Voicemail(b${ext}) -exten => sw-59-BUSY,11,Goto(s\,10) +exten => sw-59-BUSY,11,Goto(s\,11) exten => sw-59-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-59-DONTCALL,11,Goto(s\,10) +exten => sw-59-DONTCALL,11,Goto(s\,11) exten => sw-59-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-59-TORTURE,11,Goto(s\,10) +exten => sw-59-TORTURE,11,Goto(s\,11) [std-priv-exten_58] @@ -1519,21 +1577,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-60-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_58-60) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-60-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_58-60) +exten => s,12,Return() exten => _sw-60-.,10,Voicemail(u${ext}) -exten => _sw-60-.,11,Goto(s\,10) +exten => _sw-60-.,11,Goto(s\,11) exten => sw-60-,10,Goto(sw-60-.|10) exten => sw-60-NOANSWER,10,Voicemail(u${ext}) -exten => sw-60-NOANSWER,11,Goto(s\,10) -exten => sw-60-ANSWER,10,Goto(s\,10) +exten => sw-60-NOANSWER,11,Goto(s\,11) +exten => sw-60-ANSWER,10,Goto(s\,11) exten => sw-60-BUSY,10,Voicemail(b${ext}) -exten => sw-60-BUSY,11,Goto(s\,10) +exten => sw-60-BUSY,11,Goto(s\,11) exten => sw-60-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-60-DONTCALL,11,Goto(s\,10) +exten => sw-60-DONTCALL,11,Goto(s\,11) exten => sw-60-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-60-TORTURE,11,Goto(s\,10) +exten => sw-60-TORTURE,11,Goto(s\,11) [std-priv-exten_59] @@ -1545,21 +1604,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-61-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_59-61) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-61-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_59-61) +exten => s,12,Return() exten => _sw-61-.,10,Voicemail(u${ext}) -exten => _sw-61-.,11,Goto(s\,10) +exten => _sw-61-.,11,Goto(s\,11) exten => sw-61-,10,Goto(sw-61-.|10) exten => sw-61-NOANSWER,10,Voicemail(u${ext}) -exten => sw-61-NOANSWER,11,Goto(s\,10) -exten => sw-61-ANSWER,10,Goto(s\,10) +exten => sw-61-NOANSWER,11,Goto(s\,11) +exten => sw-61-ANSWER,10,Goto(s\,11) exten => sw-61-BUSY,10,Voicemail(b${ext}) -exten => sw-61-BUSY,11,Goto(s\,10) +exten => sw-61-BUSY,11,Goto(s\,11) exten => sw-61-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-61-DONTCALL,11,Goto(s\,10) +exten => sw-61-DONTCALL,11,Goto(s\,11) exten => sw-61-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-61-TORTURE,11,Goto(s\,10) +exten => sw-61-TORTURE,11,Goto(s\,11) [std-priv-exten_60] @@ -1571,21 +1631,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-62-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_60-62) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-62-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_60-62) +exten => s,12,Return() exten => _sw-62-.,10,Voicemail(u${ext}) -exten => _sw-62-.,11,Goto(s\,10) +exten => _sw-62-.,11,Goto(s\,11) exten => sw-62-,10,Goto(sw-62-.|10) exten => sw-62-NOANSWER,10,Voicemail(u${ext}) -exten => sw-62-NOANSWER,11,Goto(s\,10) -exten => sw-62-ANSWER,10,Goto(s\,10) +exten => sw-62-NOANSWER,11,Goto(s\,11) +exten => sw-62-ANSWER,10,Goto(s\,11) exten => sw-62-BUSY,10,Voicemail(b${ext}) -exten => sw-62-BUSY,11,Goto(s\,10) +exten => sw-62-BUSY,11,Goto(s\,11) exten => sw-62-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-62-DONTCALL,11,Goto(s\,10) +exten => sw-62-DONTCALL,11,Goto(s\,11) exten => sw-62-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-62-TORTURE,11,Goto(s\,10) +exten => sw-62-TORTURE,11,Goto(s\,11) [std-priv-exten_61] @@ -1597,21 +1658,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-63-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_61-63) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-63-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_61-63) +exten => s,12,Return() exten => _sw-63-.,10,Voicemail(u${ext}) -exten => _sw-63-.,11,Goto(s\,10) +exten => _sw-63-.,11,Goto(s\,11) exten => sw-63-,10,Goto(sw-63-.|10) exten => sw-63-NOANSWER,10,Voicemail(u${ext}) -exten => sw-63-NOANSWER,11,Goto(s\,10) -exten => sw-63-ANSWER,10,Goto(s\,10) +exten => sw-63-NOANSWER,11,Goto(s\,11) +exten => sw-63-ANSWER,10,Goto(s\,11) exten => sw-63-BUSY,10,Voicemail(b${ext}) -exten => sw-63-BUSY,11,Goto(s\,10) +exten => sw-63-BUSY,11,Goto(s\,11) exten => sw-63-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-63-DONTCALL,11,Goto(s\,10) +exten => sw-63-DONTCALL,11,Goto(s\,11) exten => sw-63-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-63-TORTURE,11,Goto(s\,10) +exten => sw-63-TORTURE,11,Goto(s\,11) [std-priv-exten_62] @@ -1623,21 +1685,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-64-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_62-64) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-64-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_62-64) +exten => s,12,Return() exten => _sw-64-.,10,Voicemail(u${ext}) -exten => _sw-64-.,11,Goto(s\,10) +exten => _sw-64-.,11,Goto(s\,11) exten => sw-64-,10,Goto(sw-64-.|10) exten => sw-64-NOANSWER,10,Voicemail(u${ext}) -exten => sw-64-NOANSWER,11,Goto(s\,10) -exten => sw-64-ANSWER,10,Goto(s\,10) +exten => sw-64-NOANSWER,11,Goto(s\,11) +exten => sw-64-ANSWER,10,Goto(s\,11) exten => sw-64-BUSY,10,Voicemail(b${ext}) -exten => sw-64-BUSY,11,Goto(s\,10) +exten => sw-64-BUSY,11,Goto(s\,11) exten => sw-64-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-64-DONTCALL,11,Goto(s\,10) +exten => sw-64-DONTCALL,11,Goto(s\,11) exten => sw-64-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-64-TORTURE,11,Goto(s\,10) +exten => sw-64-TORTURE,11,Goto(s\,11) [std-priv-exten_63] @@ -1649,21 +1712,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-65-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_63-65) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-65-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_63-65) +exten => s,12,Return() exten => _sw-65-.,10,Voicemail(u${ext}) -exten => _sw-65-.,11,Goto(s\,10) +exten => _sw-65-.,11,Goto(s\,11) exten => sw-65-,10,Goto(sw-65-.|10) exten => sw-65-NOANSWER,10,Voicemail(u${ext}) -exten => sw-65-NOANSWER,11,Goto(s\,10) -exten => sw-65-ANSWER,10,Goto(s\,10) +exten => sw-65-NOANSWER,11,Goto(s\,11) +exten => sw-65-ANSWER,10,Goto(s\,11) exten => sw-65-BUSY,10,Voicemail(b${ext}) -exten => sw-65-BUSY,11,Goto(s\,10) +exten => sw-65-BUSY,11,Goto(s\,11) exten => sw-65-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-65-DONTCALL,11,Goto(s\,10) +exten => sw-65-DONTCALL,11,Goto(s\,11) exten => sw-65-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-65-TORTURE,11,Goto(s\,10) +exten => sw-65-TORTURE,11,Goto(s\,11) [std-priv-exten_64] @@ -1675,21 +1739,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-66-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_64-66) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-66-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_64-66) +exten => s,12,Return() exten => _sw-66-.,10,Voicemail(u${ext}) -exten => _sw-66-.,11,Goto(s\,10) +exten => _sw-66-.,11,Goto(s\,11) exten => sw-66-,10,Goto(sw-66-.|10) exten => sw-66-NOANSWER,10,Voicemail(u${ext}) -exten => sw-66-NOANSWER,11,Goto(s\,10) -exten => sw-66-ANSWER,10,Goto(s\,10) +exten => sw-66-NOANSWER,11,Goto(s\,11) +exten => sw-66-ANSWER,10,Goto(s\,11) exten => sw-66-BUSY,10,Voicemail(b${ext}) -exten => sw-66-BUSY,11,Goto(s\,10) +exten => sw-66-BUSY,11,Goto(s\,11) exten => sw-66-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-66-DONTCALL,11,Goto(s\,10) +exten => sw-66-DONTCALL,11,Goto(s\,11) exten => sw-66-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-66-TORTURE,11,Goto(s\,10) +exten => sw-66-TORTURE,11,Goto(s\,11) [std-priv-exten_65] @@ -1701,21 +1766,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-67-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_65-67) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-67-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_65-67) +exten => s,12,Return() exten => _sw-67-.,10,Voicemail(u${ext}) -exten => _sw-67-.,11,Goto(s\,10) +exten => _sw-67-.,11,Goto(s\,11) exten => sw-67-,10,Goto(sw-67-.|10) exten => sw-67-NOANSWER,10,Voicemail(u${ext}) -exten => sw-67-NOANSWER,11,Goto(s\,10) -exten => sw-67-ANSWER,10,Goto(s\,10) +exten => sw-67-NOANSWER,11,Goto(s\,11) +exten => sw-67-ANSWER,10,Goto(s\,11) exten => sw-67-BUSY,10,Voicemail(b${ext}) -exten => sw-67-BUSY,11,Goto(s\,10) +exten => sw-67-BUSY,11,Goto(s\,11) exten => sw-67-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-67-DONTCALL,11,Goto(s\,10) +exten => sw-67-DONTCALL,11,Goto(s\,11) exten => sw-67-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-67-TORTURE,11,Goto(s\,10) +exten => sw-67-TORTURE,11,Goto(s\,11) [std-priv-exten_66] @@ -1727,21 +1793,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-68-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_66-68) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-68-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_66-68) +exten => s,12,Return() exten => _sw-68-.,10,Voicemail(u${ext}) -exten => _sw-68-.,11,Goto(s\,10) +exten => _sw-68-.,11,Goto(s\,11) exten => sw-68-,10,Goto(sw-68-.|10) exten => sw-68-NOANSWER,10,Voicemail(u${ext}) -exten => sw-68-NOANSWER,11,Goto(s\,10) -exten => sw-68-ANSWER,10,Goto(s\,10) +exten => sw-68-NOANSWER,11,Goto(s\,11) +exten => sw-68-ANSWER,10,Goto(s\,11) exten => sw-68-BUSY,10,Voicemail(b${ext}) -exten => sw-68-BUSY,11,Goto(s\,10) +exten => sw-68-BUSY,11,Goto(s\,11) exten => sw-68-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-68-DONTCALL,11,Goto(s\,10) +exten => sw-68-DONTCALL,11,Goto(s\,11) exten => sw-68-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-68-TORTURE,11,Goto(s\,10) +exten => sw-68-TORTURE,11,Goto(s\,11) [std-priv-exten_67] @@ -1753,21 +1820,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-69-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_67-69) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-69-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_67-69) +exten => s,12,Return() exten => _sw-69-.,10,Voicemail(u${ext}) -exten => _sw-69-.,11,Goto(s\,10) +exten => _sw-69-.,11,Goto(s\,11) exten => sw-69-,10,Goto(sw-69-.|10) exten => sw-69-NOANSWER,10,Voicemail(u${ext}) -exten => sw-69-NOANSWER,11,Goto(s\,10) -exten => sw-69-ANSWER,10,Goto(s\,10) +exten => sw-69-NOANSWER,11,Goto(s\,11) +exten => sw-69-ANSWER,10,Goto(s\,11) exten => sw-69-BUSY,10,Voicemail(b${ext}) -exten => sw-69-BUSY,11,Goto(s\,10) +exten => sw-69-BUSY,11,Goto(s\,11) exten => sw-69-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-69-DONTCALL,11,Goto(s\,10) +exten => sw-69-DONTCALL,11,Goto(s\,11) exten => sw-69-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-69-TORTURE,11,Goto(s\,10) +exten => sw-69-TORTURE,11,Goto(s\,11) [std-priv-exten_68] @@ -1779,21 +1847,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-70-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_68-70) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-70-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_68-70) +exten => s,12,Return() exten => _sw-70-.,10,Voicemail(u${ext}) -exten => _sw-70-.,11,Goto(s\,10) +exten => _sw-70-.,11,Goto(s\,11) exten => sw-70-,10,Goto(sw-70-.|10) exten => sw-70-NOANSWER,10,Voicemail(u${ext}) -exten => sw-70-NOANSWER,11,Goto(s\,10) -exten => sw-70-ANSWER,10,Goto(s\,10) +exten => sw-70-NOANSWER,11,Goto(s\,11) +exten => sw-70-ANSWER,10,Goto(s\,11) exten => sw-70-BUSY,10,Voicemail(b${ext}) -exten => sw-70-BUSY,11,Goto(s\,10) +exten => sw-70-BUSY,11,Goto(s\,11) exten => sw-70-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-70-DONTCALL,11,Goto(s\,10) +exten => sw-70-DONTCALL,11,Goto(s\,11) exten => sw-70-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-70-TORTURE,11,Goto(s\,10) +exten => sw-70-TORTURE,11,Goto(s\,11) [std-priv-exten_69] @@ -1805,21 +1874,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-71-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_69-71) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-71-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_69-71) +exten => s,12,Return() exten => _sw-71-.,10,Voicemail(u${ext}) -exten => _sw-71-.,11,Goto(s\,10) +exten => _sw-71-.,11,Goto(s\,11) exten => sw-71-,10,Goto(sw-71-.|10) exten => sw-71-NOANSWER,10,Voicemail(u${ext}) -exten => sw-71-NOANSWER,11,Goto(s\,10) -exten => sw-71-ANSWER,10,Goto(s\,10) +exten => sw-71-NOANSWER,11,Goto(s\,11) +exten => sw-71-ANSWER,10,Goto(s\,11) exten => sw-71-BUSY,10,Voicemail(b${ext}) -exten => sw-71-BUSY,11,Goto(s\,10) +exten => sw-71-BUSY,11,Goto(s\,11) exten => sw-71-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-71-DONTCALL,11,Goto(s\,10) +exten => sw-71-DONTCALL,11,Goto(s\,11) exten => sw-71-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-71-TORTURE,11,Goto(s\,10) +exten => sw-71-TORTURE,11,Goto(s\,11) [std-priv-exten_70] @@ -1831,21 +1901,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-72-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_70-72) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-72-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_70-72) +exten => s,12,Return() exten => _sw-72-.,10,Voicemail(u${ext}) -exten => _sw-72-.,11,Goto(s\,10) +exten => _sw-72-.,11,Goto(s\,11) exten => sw-72-,10,Goto(sw-72-.|10) exten => sw-72-NOANSWER,10,Voicemail(u${ext}) -exten => sw-72-NOANSWER,11,Goto(s\,10) -exten => sw-72-ANSWER,10,Goto(s\,10) +exten => sw-72-NOANSWER,11,Goto(s\,11) +exten => sw-72-ANSWER,10,Goto(s\,11) exten => sw-72-BUSY,10,Voicemail(b${ext}) -exten => sw-72-BUSY,11,Goto(s\,10) +exten => sw-72-BUSY,11,Goto(s\,11) exten => sw-72-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-72-DONTCALL,11,Goto(s\,10) +exten => sw-72-DONTCALL,11,Goto(s\,11) exten => sw-72-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-72-TORTURE,11,Goto(s\,10) +exten => sw-72-TORTURE,11,Goto(s\,11) [std-priv-exten_71] @@ -1857,21 +1928,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-73-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_71-73) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-73-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_71-73) +exten => s,12,Return() exten => _sw-73-.,10,Voicemail(u${ext}) -exten => _sw-73-.,11,Goto(s\,10) +exten => _sw-73-.,11,Goto(s\,11) exten => sw-73-,10,Goto(sw-73-.|10) exten => sw-73-NOANSWER,10,Voicemail(u${ext}) -exten => sw-73-NOANSWER,11,Goto(s\,10) -exten => sw-73-ANSWER,10,Goto(s\,10) +exten => sw-73-NOANSWER,11,Goto(s\,11) +exten => sw-73-ANSWER,10,Goto(s\,11) exten => sw-73-BUSY,10,Voicemail(b${ext}) -exten => sw-73-BUSY,11,Goto(s\,10) +exten => sw-73-BUSY,11,Goto(s\,11) exten => sw-73-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-73-DONTCALL,11,Goto(s\,10) +exten => sw-73-DONTCALL,11,Goto(s\,11) exten => sw-73-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-73-TORTURE,11,Goto(s\,10) +exten => sw-73-TORTURE,11,Goto(s\,11) [std-priv-exten_72] @@ -1883,21 +1955,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-74-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_72-74) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-74-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_72-74) +exten => s,12,Return() exten => _sw-74-.,10,Voicemail(u${ext}) -exten => _sw-74-.,11,Goto(s\,10) +exten => _sw-74-.,11,Goto(s\,11) exten => sw-74-,10,Goto(sw-74-.|10) exten => sw-74-NOANSWER,10,Voicemail(u${ext}) -exten => sw-74-NOANSWER,11,Goto(s\,10) -exten => sw-74-ANSWER,10,Goto(s\,10) +exten => sw-74-NOANSWER,11,Goto(s\,11) +exten => sw-74-ANSWER,10,Goto(s\,11) exten => sw-74-BUSY,10,Voicemail(b${ext}) -exten => sw-74-BUSY,11,Goto(s\,10) +exten => sw-74-BUSY,11,Goto(s\,11) exten => sw-74-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-74-DONTCALL,11,Goto(s\,10) +exten => sw-74-DONTCALL,11,Goto(s\,11) exten => sw-74-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-74-TORTURE,11,Goto(s\,10) +exten => sw-74-TORTURE,11,Goto(s\,11) [std-priv-exten_73] @@ -1909,21 +1982,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-75-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten_73-75) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-75-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten_73-75) +exten => s,12,Return() exten => _sw-75-.,10,Voicemail(u${ext}) -exten => _sw-75-.,11,Goto(s\,10) +exten => _sw-75-.,11,Goto(s\,11) exten => sw-75-,10,Goto(sw-75-.|10) exten => sw-75-NOANSWER,10,Voicemail(u${ext}) -exten => sw-75-NOANSWER,11,Goto(s\,10) -exten => sw-75-ANSWER,10,Goto(s\,10) +exten => sw-75-NOANSWER,11,Goto(s\,11) +exten => sw-75-ANSWER,10,Goto(s\,11) exten => sw-75-BUSY,10,Voicemail(b${ext}) -exten => sw-75-BUSY,11,Goto(s\,10) +exten => sw-75-BUSY,11,Goto(s\,11) exten => sw-75-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-75-DONTCALL,11,Goto(s\,10) +exten => sw-75-DONTCALL,11,Goto(s\,11) exten => sw-75-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-75-TORTURE,11,Goto(s\,10) +exten => sw-75-TORTURE,11,Goto(s\,11) [std-priv-exten] @@ -1935,21 +2009,22 @@ exten => s,5,Set(LOCAL(torcont)=${ARG5}) exten => s,6,Set(LOCAL(dontcont)=${ARG6}) exten => s,7,Dial(${dev}\,${timeout}\,${opts}) exten => s,8,NoOp(${DIALSTATUS} was chosen) -exten => s,9,Goto(sw-76-${DIALSTATUS}\,10) -exten => s,10,NoOp(Finish switch-std-priv-exten-76) -exten => s,11,Return() +exten => s,9,Set(~~EXTEN~~=${EXTEN}) +exten => s,10,Goto(sw-76-${DIALSTATUS}\,10) +exten => s,11,NoOp(Finish switch-std-priv-exten-76) +exten => s,12,Return() exten => _sw-76-.,10,Voicemail(u${ext}) -exten => _sw-76-.,11,Goto(s\,10) +exten => _sw-76-.,11,Goto(s\,11) exten => sw-76-,10,Goto(sw-76-.|10) exten => sw-76-NOANSWER,10,Voicemail(u${ext}) -exten => sw-76-NOANSWER,11,Goto(s\,10) -exten => sw-76-ANSWER,10,Goto(s\,10) +exten => sw-76-NOANSWER,11,Goto(s\,11) +exten => sw-76-ANSWER,10,Goto(s\,11) exten => sw-76-BUSY,10,Voicemail(b${ext}) -exten => sw-76-BUSY,11,Goto(s\,10) +exten => sw-76-BUSY,11,Goto(s\,11) exten => sw-76-DONTCALL,10,Goto(${dontcont}\,s\,begin) -exten => sw-76-DONTCALL,11,Goto(s\,10) +exten => sw-76-DONTCALL,11,Goto(s\,11) exten => sw-76-TORTURE,10,Goto(${torcont}\,s\,begin) -exten => sw-76-TORTURE,11,Goto(s\,10) +exten => sw-76-TORTURE,11,Goto(s\,11) [fillcidname] @@ -2088,82 +2163,83 @@ exten => s,24,GotoIf($["${lds}" = "1" ]?25:26) exten => s,25,SetMusicOnHold(mohlds) exten => s,26,NoOp(Finish if-homeline-90) exten => s,27,Set(direct=$[${DB(DirectCall/${CALLERID(num)})}]) -exten => s,28,GotoIf($["${direct}" != "" & ${direct} != 0 ]?29:36) +exten => s,28,GotoIf($["${direct}" != "" & ${direct} != 0 ]?29:37) exten => s,29,verbose(direct is XXX#${direct}XXXX) exten => s,30,Playback(greetings/direct) exten => s,31,Playback(/var/spool/asterisk/voicemail/default/${direct}/greet) exten => s,32,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm) exten => s,33,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/${direct}/greet.wav&) -exten => s,34,Goto(sw-92-${direct}\,10) -exten => s,35,NoOp(Finish switch-if-homeline-91-92) -exten => s,36,NoOp(Finish if-homeline-91) -exten => s,37(loopback),GotoIfTime(*\,*\,20-25\,dec?39) -exten => s,38,Goto(41) -exten => s,39,Playback(greetings/christmas) -exten => s,40,Goto(102) -exten => s,41,GotoIfTime(*\,*\,31\,dec?43) -exten => s,42,Goto(45) -exten => s,43,Playback(greetings/newyear) -exten => s,44,Goto(101) -exten => s,45,GotoIfTime(*\,*\,1\,jan?47) -exten => s,46,Goto(49) -exten => s,47,Playback(greetings/newyear) -exten => s,48,Goto(100) -exten => s,49,GotoIfTime(*\,*\,14\,feb?51) -exten => s,50,Goto(53) -exten => s,51,Playback(greetings/valentines) -exten => s,52,Goto(99) -exten => s,53,GotoIfTime(*\,*\,17\,mar?55) -exten => s,54,Goto(57) -exten => s,55,Playback(greetings/stPat) -exten => s,56,Goto(98) -exten => s,57,GotoIfTime(*\,*\,31\,oct?59) -exten => s,58,Goto(61) -exten => s,59,Playback(greetings/halloween) -exten => s,60,Goto(97) -exten => s,61,GotoIfTime(*\,mon\,15-21\,jan?63) -exten => s,62,Goto(65) -exten => s,63,Playback(greetings/mlkDay) -exten => s,64,Goto(96) -exten => s,65,GotoIfTime(*\,thu\,22-28\,nov?67) -exten => s,66,Goto(69) -exten => s,67,Playback(greetings/thanksgiving) -exten => s,68,Goto(95) -exten => s,69,GotoIfTime(*\,mon\,25-31\,may?71) -exten => s,70,Goto(73) -exten => s,71,Playback(greetings/memorial) -exten => s,72,Goto(94) -exten => s,73,GotoIfTime(*\,mon\,1-7\,sep?75) -exten => s,74,Goto(77) -exten => s,75,Playback(greetings/labor) -exten => s,76,Goto(93) -exten => s,77,GotoIfTime(*\,mon\,15-21\,feb?79) -exten => s,78,Goto(81) -exten => s,79,Playback(greetings/president) -exten => s,80,Goto(92) -exten => s,81,GotoIfTime(*\,sun\,8-14\,may?83) -exten => s,82,Goto(85) -exten => s,83,Playback(greetings/mothers) -exten => s,84,Goto(91) -exten => s,85,GotoIfTime(*\,sun\,15-21\,jun?87) -exten => s,86,Goto(89) -exten => s,87,Playback(greetings/fathers) -exten => s,88,Goto(90) -exten => s,89,Playback(greetings/hello) -exten => s,90,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102-103-104-105) -exten => s,91,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102-103-104) -exten => s,92,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102-103) -exten => s,93,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102) -exten => s,94,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101) -exten => s,95,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100) -exten => s,96,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99) -exten => s,97,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98) -exten => s,98,NoOp(Finish iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97) -exten => s,99,NoOp(Finish iftime-iftime-iftime-iftime-homeline-93-94-95-96) -exten => s,100,NoOp(Finish iftime-iftime-iftime-homeline-93-94-95) -exten => s,101,NoOp(Finish iftime-iftime-homeline-93-94) -exten => s,102,NoOp(Finish iftime-homeline-93) -exten => s,103,Background(murphy-homeline-intro1) +exten => s,34,Set(~~EXTEN~~=${EXTEN}) +exten => s,35,Goto(sw-92-${direct}\,10) +exten => s,36,NoOp(Finish switch-if-homeline-91-92) +exten => s,37,NoOp(Finish if-homeline-91) +exten => s,38(loopback),GotoIfTime(*\,*\,20-25\,dec?40) +exten => s,39,Goto(42) +exten => s,40,Playback(greetings/christmas) +exten => s,41,Goto(103) +exten => s,42,GotoIfTime(*\,*\,31\,dec?44) +exten => s,43,Goto(46) +exten => s,44,Playback(greetings/newyear) +exten => s,45,Goto(102) +exten => s,46,GotoIfTime(*\,*\,1\,jan?48) +exten => s,47,Goto(50) +exten => s,48,Playback(greetings/newyear) +exten => s,49,Goto(101) +exten => s,50,GotoIfTime(*\,*\,14\,feb?52) +exten => s,51,Goto(54) +exten => s,52,Playback(greetings/valentines) +exten => s,53,Goto(100) +exten => s,54,GotoIfTime(*\,*\,17\,mar?56) +exten => s,55,Goto(58) +exten => s,56,Playback(greetings/stPat) +exten => s,57,Goto(99) +exten => s,58,GotoIfTime(*\,*\,31\,oct?60) +exten => s,59,Goto(62) +exten => s,60,Playback(greetings/halloween) +exten => s,61,Goto(98) +exten => s,62,GotoIfTime(*\,mon\,15-21\,jan?64) +exten => s,63,Goto(66) +exten => s,64,Playback(greetings/mlkDay) +exten => s,65,Goto(97) +exten => s,66,GotoIfTime(*\,thu\,22-28\,nov?68) +exten => s,67,Goto(70) +exten => s,68,Playback(greetings/thanksgiving) +exten => s,69,Goto(96) +exten => s,70,GotoIfTime(*\,mon\,25-31\,may?72) +exten => s,71,Goto(74) +exten => s,72,Playback(greetings/memorial) +exten => s,73,Goto(95) +exten => s,74,GotoIfTime(*\,mon\,1-7\,sep?76) +exten => s,75,Goto(78) +exten => s,76,Playback(greetings/labor) +exten => s,77,Goto(94) +exten => s,78,GotoIfTime(*\,mon\,15-21\,feb?80) +exten => s,79,Goto(82) +exten => s,80,Playback(greetings/president) +exten => s,81,Goto(93) +exten => s,82,GotoIfTime(*\,sun\,8-14\,may?84) +exten => s,83,Goto(86) +exten => s,84,Playback(greetings/mothers) +exten => s,85,Goto(92) +exten => s,86,GotoIfTime(*\,sun\,15-21\,jun?88) +exten => s,87,Goto(90) +exten => s,88,Playback(greetings/fathers) +exten => s,89,Goto(91) +exten => s,90,Playback(greetings/hello) +exten => s,91,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102-103-104-105) +exten => s,92,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102-103-104) +exten => s,93,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102-103) +exten => s,94,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101-102) +exten => s,95,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100-101) +exten => s,96,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99-100) +exten => s,97,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98-99) +exten => s,98,NoOp(Finish iftime-iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97-98) +exten => s,99,NoOp(Finish iftime-iftime-iftime-iftime-iftime-homeline-93-94-95-96-97) +exten => s,100,NoOp(Finish iftime-iftime-iftime-iftime-homeline-93-94-95-96) +exten => s,101,NoOp(Finish iftime-iftime-iftime-homeline-93-94-95) +exten => s,102,NoOp(Finish iftime-iftime-homeline-93-94) +exten => s,103,NoOp(Finish iftime-homeline-93) +exten => s,104,Background(murphy-homeline-intro1) exten => _sw-92-.,10,Set(z=${direct}-2) exten => _sw-92-.,11,Goto(homeline-kids\,${z}\,1) exten => sw-92-,10,Goto(sw-92-.|10) diff --git a/pbx/ael/ael-test/ref.ael-vtest17 b/pbx/ael/ael-test/ref.ael-vtest17 index bb4204caa..a99ff0e5e 100644 --- a/pbx/ael/ael-test/ref.ael-vtest17 +++ b/pbx/ael/ael-test/ref.ael-vtest17 @@ -42,9 +42,10 @@ exten => 81,11,Verbose(Which means that the priorities/sec = $[4* ${iterations} exten => 81,12,SayNumber($[4 * ${iterations} / (${time2} - ${time1}) ]) exten => 82,1,Gosub(ndeep\,s\,1(100000)) exten => 82,2,Verbose(Finished 100000 levels deep call!) -exten => 83,1,Goto(sw-2-${EXTEN}\,10) -exten => 83,2,NoOp(Finish switch-extension-2) -exten => _sw-2-.,10,Goto(83\,2) +exten => 83,1,Set(~~EXTEN~~=${EXTEN}) +exten => 83,2,Goto(sw-2-${~~EXTEN~~}\,10) +exten => 83,3,NoOp(Finish switch-extension-2) +exten => _sw-2-.,10,Goto(83\,3) exten => sw-2-,10,Goto(sw-2-.|10) exten => _sw-2-[4-7]X,10,Verbose(and this too!) exten => _sw-2-[4-7]X,11,Goto(sw-2-.\,10) |