aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES15
-rw-r--r--doc/tex/ael.tex6
-rw-r--r--doc/tex/channelvariables.tex21
-rw-r--r--main/ast_expr2.c431
-rw-r--r--main/ast_expr2.fl3
-rw-r--r--main/ast_expr2.h54
-rw-r--r--main/ast_expr2.y37
-rw-r--r--main/ast_expr2f.c2396
-rw-r--r--pbx/ael/ael-test/ael-ntest24/extensions.ael27
-rw-r--r--pbx/ael/ael-test/ref.ael-ntest10137
-rw-r--r--pbx/ael/ael-test/ref.ael-ntest2434
-rw-r--r--pbx/ael/ael-test/ref.ael-test114
-rw-r--r--pbx/ael/ael-test/ref.ael-test1814
-rw-r--r--pbx/ael/ael-test/ref.ael-test1914
-rw-r--r--pbx/ael/ael-test/ref.ael-test326
-rw-r--r--pbx/ael/ael-test/ref.ael-test514
-rw-r--r--pbx/ael/ael-test/ref.ael-test814
-rw-r--r--pbx/ael/ael-test/ref.ael-vtest131564
-rw-r--r--pbx/ael/ael-test/ref.ael-vtest177
19 files changed, 3434 insertions, 1394 deletions
diff --git a/CHANGES b/CHANGES
index db4253c51..bd7197562 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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)