diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 2839c0b..4cf686f 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -34,6 +34,7 @@
         "args",
         "body",
         "decorators",
+        "returns",
 };
 static PyTypeObject *ClassDef_type;
 static char *ClassDef_fields[]={
@@ -333,11 +334,24 @@
 static char *arguments_fields[]={
         "args",
         "vararg",
+        "varargannotation",
         "kwonlyargs",
         "kwarg",
+        "kwargannotation",
         "defaults",
         "kw_defaults",
 };
+static PyTypeObject *arg_type;
+static PyObject* ast2obj_arg(void*);
+static PyTypeObject *SimpleArg_type;
+static char *SimpleArg_fields[]={
+        "arg",
+        "annotation",
+};
+static PyTypeObject *NestedArgs_type;
+static char *NestedArgs_fields[]={
+        "args",
+};
 static PyTypeObject *keyword_type;
 static PyObject* ast2obj_keyword(void*);
 static char *keyword_fields[]={
@@ -454,7 +468,7 @@
         if (!stmt_type) return 0;
         if (!add_attributes(stmt_type, stmt_attributes, 2)) return 0;
         FunctionDef_type = make_type("FunctionDef", stmt_type,
-                                     FunctionDef_fields, 4);
+                                     FunctionDef_fields, 5);
         if (!FunctionDef_type) return 0;
         ClassDef_type = make_type("ClassDef", stmt_type, ClassDef_fields, 3);
         if (!ClassDef_type) return 0;
@@ -710,8 +724,16 @@
         excepthandler_type = make_type("excepthandler", AST_type,
                                        excepthandler_fields, 5);
         if (!excepthandler_type) return 0;
-        arguments_type = make_type("arguments", AST_type, arguments_fields, 6);
+        arguments_type = make_type("arguments", AST_type, arguments_fields, 8);
         if (!arguments_type) return 0;
+        arg_type = make_type("arg", AST_type, NULL, 0);
+        if (!arg_type) return 0;
+        if (!add_attributes(arg_type, NULL, 0)) return 0;
+        SimpleArg_type = make_type("SimpleArg", arg_type, SimpleArg_fields, 2);
+        if (!SimpleArg_type) return 0;
+        NestedArgs_type = make_type("NestedArgs", arg_type, NestedArgs_fields,
+                                    1);
+        if (!NestedArgs_type) return 0;
         keyword_type = make_type("keyword", AST_type, keyword_fields, 2);
         if (!keyword_type) return 0;
         alias_type = make_type("alias", AST_type, alias_fields, 2);
@@ -783,7 +805,8 @@
 
 stmt_ty
 FunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq *
-            decorators, int lineno, int col_offset, PyArena *arena)
+            decorators, expr_ty returns, int lineno, int col_offset, PyArena
+            *arena)
 {
         stmt_ty p;
         if (!name) {
@@ -806,6 +829,7 @@
         p->v.FunctionDef.args = args;
         p->v.FunctionDef.body = body;
         p->v.FunctionDef.decorators = decorators;
+        p->v.FunctionDef.returns = returns;
         p->lineno = lineno;
         p->col_offset = col_offset;
         return p;
@@ -1830,8 +1854,9 @@
 }
 
 arguments_ty
-arguments(asdl_seq * args, identifier vararg, asdl_seq * kwonlyargs, identifier
-          kwarg, asdl_seq * defaults, asdl_seq * kw_defaults, PyArena *arena)
+arguments(asdl_seq * args, identifier vararg, expr_ty varargannotation,
+          asdl_seq * kwonlyargs, identifier kwarg, expr_ty kwargannotation,
+          asdl_seq * defaults, asdl_seq * kw_defaults, PyArena *arena)
 {
         arguments_ty p;
         p = (arguments_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -1841,13 +1866,49 @@
         }
         p->args = args;
         p->vararg = vararg;
+        p->varargannotation = varargannotation;
         p->kwonlyargs = kwonlyargs;
         p->kwarg = kwarg;
+        p->kwargannotation = kwargannotation;
         p->defaults = defaults;
         p->kw_defaults = kw_defaults;
         return p;
 }
 
+arg_ty
+SimpleArg(identifier arg, expr_ty annotation, PyArena *arena)
+{
+        arg_ty p;
+        if (!arg) {
+                PyErr_SetString(PyExc_ValueError,
+                                "field arg is required for SimpleArg");
+                return NULL;
+        }
+        p = (arg_ty)PyArena_Malloc(arena, sizeof(*p));
+        if (!p) {
+                PyErr_NoMemory();
+                return NULL;
+        }
+        p->kind = SimpleArg_kind;
+        p->v.SimpleArg.arg = arg;
+        p->v.SimpleArg.annotation = annotation;
+        return p;
+}
+
+arg_ty
+NestedArgs(asdl_seq * args, PyArena *arena)
+{
+        arg_ty p;
+        p = (arg_ty)PyArena_Malloc(arena, sizeof(*p));
+        if (!p) {
+                PyErr_NoMemory();
+                return NULL;
+        }
+        p->kind = NestedArgs_kind;
+        p->v.NestedArgs.args = args;
+        return p;
+}
+
 keyword_ty
 keyword(identifier arg, expr_ty value, PyArena *arena)
 {
@@ -1981,6 +2042,11 @@
                 if (PyObject_SetAttrString(result, "decorators", value) == -1)
                         goto failed;
                 Py_DECREF(value);
+                value = ast2obj_expr(o->v.FunctionDef.returns);
+                if (!value) goto failed;
+                if (PyObject_SetAttrString(result, "returns", value) == -1)
+                        goto failed;
+                Py_DECREF(value);
                 break;
         case ClassDef_kind:
                 result = PyType_GenericNew(ClassDef_type, NULL, NULL);
@@ -2901,7 +2967,7 @@
 
         result = PyType_GenericNew(arguments_type, NULL, NULL);
         if (!result) return NULL;
-        value = ast2obj_list(o->args, ast2obj_expr);
+        value = ast2obj_list(o->args, ast2obj_arg);
         if (!value) goto failed;
         if (PyObject_SetAttrString(result, "args", value) == -1)
                 goto failed;
@@ -2911,7 +2977,12 @@
         if (PyObject_SetAttrString(result, "vararg", value) == -1)
                 goto failed;
         Py_DECREF(value);
-        value = ast2obj_list(o->kwonlyargs, ast2obj_expr);
+        value = ast2obj_expr(o->varargannotation);
+        if (!value) goto failed;
+        if (PyObject_SetAttrString(result, "varargannotation", value) == -1)
+                goto failed;
+        Py_DECREF(value);
+        value = ast2obj_list(o->kwonlyargs, ast2obj_arg);
         if (!value) goto failed;
         if (PyObject_SetAttrString(result, "kwonlyargs", value) == -1)
                 goto failed;
@@ -2921,6 +2992,11 @@
         if (PyObject_SetAttrString(result, "kwarg", value) == -1)
                 goto failed;
         Py_DECREF(value);
+        value = ast2obj_expr(o->kwargannotation);
+        if (!value) goto failed;
+        if (PyObject_SetAttrString(result, "kwargannotation", value) == -1)
+                goto failed;
+        Py_DECREF(value);
         value = ast2obj_list(o->defaults, ast2obj_expr);
         if (!value) goto failed;
         if (PyObject_SetAttrString(result, "defaults", value) == -1)
@@ -2939,6 +3015,48 @@
 }
 
 PyObject*
+ast2obj_arg(void* _o)
+{
+        arg_ty o = (arg_ty)_o;
+        PyObject *result = NULL, *value = NULL;
+        if (!o) {
+                Py_INCREF(Py_None);
+                return Py_None;
+        }
+
+        switch (o->kind) {
+        case SimpleArg_kind:
+                result = PyType_GenericNew(SimpleArg_type, NULL, NULL);
+                if (!result) goto failed;
+                value = ast2obj_identifier(o->v.SimpleArg.arg);
+                if (!value) goto failed;
+                if (PyObject_SetAttrString(result, "arg", value) == -1)
+                        goto failed;
+                Py_DECREF(value);
+                value = ast2obj_expr(o->v.SimpleArg.annotation);
+                if (!value) goto failed;
+                if (PyObject_SetAttrString(result, "annotation", value) == -1)
+                        goto failed;
+                Py_DECREF(value);
+                break;
+        case NestedArgs_kind:
+                result = PyType_GenericNew(NestedArgs_type, NULL, NULL);
+                if (!result) goto failed;
+                value = ast2obj_list(o->v.NestedArgs.args, ast2obj_arg);
+                if (!value) goto failed;
+                if (PyObject_SetAttrString(result, "args", value) == -1)
+                        goto failed;
+                Py_DECREF(value);
+                break;
+        }
+        return result;
+failed:
+        Py_XDECREF(value);
+        Py_XDECREF(result);
+        return NULL;
+}
+
+PyObject*
 ast2obj_keyword(void* _o)
 {
         keyword_ty o = (keyword_ty)_o;
@@ -3008,7 +3126,7 @@
         if (PyDict_SetItemString(d, "AST", (PyObject*)AST_type) < 0) return;
         if (PyModule_AddIntConstant(m, "PyCF_ONLY_AST", PyCF_ONLY_AST) < 0)
                 return;
-        if (PyModule_AddStringConstant(m, "__version__", "51773") < 0)
+        if (PyModule_AddStringConstant(m, "__version__", "52491") < 0)
                 return;
         if (PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return;
         if (PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0)
@@ -3146,6 +3264,11 @@
             (PyObject*)excepthandler_type) < 0) return;
         if (PyDict_SetItemString(d, "arguments", (PyObject*)arguments_type) <
             0) return;
+        if (PyDict_SetItemString(d, "arg", (PyObject*)arg_type) < 0) return;
+        if (PyDict_SetItemString(d, "SimpleArg", (PyObject*)SimpleArg_type) <
+            0) return;
+        if (PyDict_SetItemString(d, "NestedArgs", (PyObject*)NestedArgs_type) <
+            0) return;
         if (PyDict_SetItemString(d, "keyword", (PyObject*)keyword_type) < 0)
             return;
         if (PyDict_SetItemString(d, "alias", (PyObject*)alias_type) < 0) return;
diff --git a/Python/ast.c b/Python/ast.c
index 411c42f..5ccd6f5 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -388,14 +388,14 @@
             expr_name = "list comprehension";
             break;
         case Dict_kind:
-	case Set_kind:
+        case Set_kind:
         case Num_kind:
         case Str_kind:
             expr_name = "literal";
             break;
-	case Ellipsis_kind:
-	    expr_name = "Ellipsis";
-	    break;
+        case Ellipsis_kind:
+            expr_name = "Ellipsis";
+            break;
         case Compare_kind:
             expr_name = "comparison";
             break;
@@ -553,59 +553,74 @@
     return seq;
 }
 
-static expr_ty
+static arg_ty
+compiler_simple_arg(struct compiling *c, const node *n)
+{
+    identifier name;
+    expr_ty annotation = NULL;
+    node *ch;
+
+    assert(TYPE(n) == tname || TYPE(n) == vname);
+    ch = CHILD(n, 0);
+    if (!strcmp(STR(ch), "None")) {
+        ast_error(ch, "assignment to None");
+        return NULL;
+    }
+    name = NEW_IDENTIFIER(ch);
+    if (!name)
+        return NULL;
+
+    if (NCH(n) == 3 && TYPE(CHILD(n, 1)) == COLON) {
+        annotation = ast_for_expr(c, CHILD(n, 2));
+        if (!annotation)
+            return NULL;
+    }
+
+    return SimpleArg(name, annotation, c->c_arena);
+}
+
+static arg_ty
 compiler_complex_args(struct compiling *c, const node *n)
 {
     int i, len = (NCH(n) + 1) / 2;
-    expr_ty result;
+    arg_ty arg;
     asdl_seq *args = asdl_seq_new(len, c->c_arena);
     if (!args)
         return NULL;
 
-    /* fpdef: NAME | '(' fplist ')'
-       fplist: fpdef (',' fpdef)* [',']
-    */
-    REQ(n, fplist);
+    assert(TYPE(n) == tfplist || TYPE(n) == vfplist);
     for (i = 0; i < len; i++) {
-        const node *fpdef_node = CHILD(n, 2*i);
-        const node *child;
-        expr_ty arg;
-set_name:
-        /* fpdef_node is either a NAME or an fplist */
-        child = CHILD(fpdef_node, 0);
-        if (TYPE(child) == NAME) {
-                if (!strcmp(STR(child), "None")) {
-                        ast_error(child, "assignment to None");
-                        return NULL;
-                    }   
-            arg = Name(NEW_IDENTIFIER(child), Store, LINENO(child),
-                       child->n_col_offset, c->c_arena);
-            }
-        else {
-            assert(TYPE(fpdef_node) == fpdef);
-            /* fpdef_node[0] is not a name, so it must be a '(', get CHILD[1] */
-            child = CHILD(fpdef_node, 1);
-            assert(TYPE(child) == fplist);
-            /* NCH == 1 means we have (x), we need to elide the extra parens */
-            if (NCH(child) == 1) {
-                fpdef_node = CHILD(child, 0);
-                assert(TYPE(fpdef_node) == fpdef);
-                goto set_name;
-            }
-            arg = compiler_complex_args(c, child);
+        const node *child = CHILD(n, 2*i);
+        /* def foo(((x), y)): -- x is not nested complex, special case. */
+        while (NCH(child) == 3 && NCH(CHILD(child, 1)) == 1)
+            child = CHILD(CHILD(child, 1), 0);
+
+        /* child either holds a tname or '(', a tfplist, ')' */
+        switch (TYPE(CHILD(child, 0))) {
+        case tname:
+        case vname:
+            arg = compiler_simple_arg(c, CHILD(child, 0));
+            break;
+        case LPAR:
+            arg = compiler_complex_args(c, CHILD(child, 1));
+            break;
+        default:
+            PyErr_Format(PyExc_SystemError,
+                             "unexpected node in args: %d @ %d",
+                             TYPE(CHILD(child, 0)), i);
+            arg = NULL;
         }
+        if (!arg)
+            return NULL;
         asdl_seq_SET(args, i, arg);
     }
 
-    result = Tuple(args, Store, LINENO(n), n->n_col_offset, c->c_arena);
-    if (!set_context(result, Store, n))
-        return NULL;
-    return result;
+    return NestedArgs(args, c->c_arena);
 }
 
 /* returns -1 if failed to handle keyword only arguments
    returns new position to keep processing if successful
-               (',' NAME ['=' test])* 
+               (',' tname ['=' test])*
                      ^^^
    start pointing here
  */
@@ -614,7 +629,8 @@
                         asdl_seq *kwonlyargs, asdl_seq *kwdefaults)
 {
     node *ch;
-    expr_ty name;
+    expr_ty expression, annotation;
+    arg_ty arg;
     int i = start;
     int j = 0; /* index for kwdefaults and kwonlyargs */
     assert(kwonlyargs != NULL);
@@ -622,9 +638,10 @@
     while (i < NCH(n)) {
         ch = CHILD(n, i);
         switch (TYPE(ch)) {
-            case NAME:
+            case vname:
+            case tname:
                 if (i + 1 < NCH(n) && TYPE(CHILD(n, i + 1)) == EQUAL) {
-                    expr_ty expression = ast_for_expr(c, CHILD(n, i + 2));
+                    expression = ast_for_expr(c, CHILD(n, i + 2));
                     if (!expression) {
                         ast_error(ch, "assignment to None");
                         goto error;
@@ -635,18 +652,28 @@
                 else { /* setting NULL if no default value exists */
                     asdl_seq_SET(kwdefaults, j, NULL);
                 }
+                if (NCH(ch) == 3) {
+                    /* ch is NAME ':' test */
+                    annotation = ast_for_expr(c, CHILD(ch, 2));
+                    if (!annotation) {
+                        ast_error(ch, "expected expression");
+                        goto error;
+                    }
+                }
+                else {
+                    annotation = NULL;
+                }
+                ch = CHILD(ch, 0);
                 if (!strcmp(STR(ch), "None")) {
                     ast_error(ch, "assignment to None");
                     goto error;
                 }
-                name = Name(NEW_IDENTIFIER(ch),
-                            Param, LINENO(ch), ch->n_col_offset,
-                            c->c_arena);
-                if (!name) {
+                arg = SimpleArg(NEW_IDENTIFIER(ch), annotation, c->c_arena);
+                if (!arg) {
                     ast_error(ch, "expecting name");
                     goto error;
                 }
-                asdl_seq_SET(kwonlyargs, j++, name);
+                asdl_seq_SET(kwonlyargs, j++, arg);
                 i += 2; /* the name and the comma */
                 break;
             case DOUBLESTAR:
@@ -666,29 +693,41 @@
 static arguments_ty
 ast_for_arguments(struct compiling *c, const node *n)
 {
-    /* parameters: '(' [varargslist] ')'
-       varargslist: (fpdef ['=' test] ',')* 
-             ('*' [NAME] (',' fpdef ['=' test])* [',' '**' NAME] | '**' NAME)
-             | fpdef ['=' test] (',' fpdef ['=' test])* [',']
+    /* This function handles both typedargslist (function definition)
+       and varargslist (lambda definition).
+
+       parameters: '(' [typedargslist] ')'
+       typedargslist: ((tfpdef ['=' test] ',')*
+           ('*' [tname] (',' tname ['=' test])* [',' '**' tname]
+           | '**' tname)
+           | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])
+       varargslist: ((vfpdef ['=' test] ',')*
+           ('*' [vname] (',' vname ['=' test])*  [',' '**' vname]
+           | '**' vname)
+           | vfpdef ['=' test] (',' vfpdef ['=' test])* [','])
     */
     int i, j, k, nposargs = 0, nkwonlyargs = 0;
     int nposdefaults = 0, found_default = 0;
     asdl_seq *posargs, *posdefaults, *kwonlyargs, *kwdefaults;
     identifier vararg = NULL, kwarg = NULL;
+    arg_ty arg;
+    expr_ty varargannotation = NULL, kwargannotation = NULL;
     node *ch;
 
     if (TYPE(n) == parameters) {
         if (NCH(n) == 2) /* () as argument list */
-            return arguments(NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
+            return arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                             NULL, c->c_arena);
         n = CHILD(n, 1);
     }
-    REQ(n, varargslist);
+    assert(TYPE(n) == typedargslist || TYPE(n) == varargslist);
 
     /* first count the number of positional args & defaults */
     for (i = 0; i < NCH(n); i++) {
         ch = CHILD(n, i);
         if (TYPE(ch) == STAR) {
-            if (TYPE(CHILD(n, i+1)) == NAME) {
+            if (TYPE(CHILD(n, i+1)) == tname
+                || TYPE(CHILD(n, i+1)) == vname) {
             /* skip NAME of vararg */
             /* so that following can count only keyword only args */
                 i += 2;
@@ -698,7 +737,7 @@
             }
             break; 
         }
-        if (TYPE(ch) == fpdef) nposargs++;
+        if (TYPE(ch) == vfpdef || TYPE(ch) == tfpdef) nposargs++;
         if (TYPE(ch) == EQUAL) nposdefaults++;
     }
     /* count the number of keyword only args & 
@@ -706,35 +745,39 @@
     for ( ; i < NCH(n); ++i) {
         ch = CHILD(n, i);
         if (TYPE(ch) == DOUBLESTAR) break;
-        if (TYPE(ch) == NAME) nkwonlyargs++;
+        if (TYPE(ch) == tname || TYPE(ch) == vname) nkwonlyargs++;
     }
 
     posargs = (nposargs ? asdl_seq_new(nposargs, c->c_arena) : NULL);
     if (!posargs && nposargs)
-            return NULL; /* Don't need to goto error; no objects allocated */
+        goto error;
     kwonlyargs = (nkwonlyargs ?
                    asdl_seq_new(nkwonlyargs, c->c_arena) : NULL);
     if (!kwonlyargs && nkwonlyargs)
-            return NULL; /* Don't need to goto error; no objects allocated */
+        goto error;
     posdefaults = (nposdefaults ? 
                     asdl_seq_new(nposdefaults, c->c_arena) : NULL);
     if (!posdefaults && nposdefaults)
-            return NULL; /* Don't need to goto error; no objects allocated */
+        goto error;
     /* The length of kwonlyargs and kwdefaults are same 
        since we set NULL as default for keyword only argument w/o default
        - we have sequence data structure, but no dictionary */
-    kwdefaults = (nkwonlyargs ? 
+    kwdefaults = (nkwonlyargs ?
                    asdl_seq_new(nkwonlyargs, c->c_arena) : NULL);
     if (!kwdefaults && nkwonlyargs)
-            return NULL; /* Don't need to goto error; no objects allocated */
+        goto error;
 
     if (nposargs + nkwonlyargs > 255) {
-		ast_error(n, "more than 255 arguments");
-		return NULL;
+        ast_error(n, "more than 255 arguments");
+        return NULL;
     }
 
-    /* fpdef: NAME | '(' fplist ')'
-       fplist: fpdef (',' fpdef)* [',']
+    /* tname: NAME [':' test]
+       tfpdef: tname | '(' tfplist ')'
+       tfplist: tfpdef (',' tfpdef)* [',']
+       vname: NAME
+       vfpdef: NAME | '(' vfplist ')'
+       vfplist: vfpdef (',' vfpdef)* [',']
     */
     i = 0;
     j = 0;  /* index for defaults */
@@ -742,8 +785,8 @@
     while (i < NCH(n)) {
         ch = CHILD(n, i);
         switch (TYPE(ch)) {
-            case fpdef:
-            handle_fpdef:
+            case tfpdef:
+            case vfpdef:
                 /* XXX Need to worry about checking if TYPE(CHILD(n, i+1)) is
                    anything other than EQUAL or a comma? */
                 /* XXX Should NCH(n) check be made a separate check? */
@@ -753,7 +796,6 @@
                         goto error;
                     assert(posdefaults != NULL);
                     asdl_seq_SET(posdefaults, j++, expression);
-
                     i += 2;
                     found_default = 1;
                 }
@@ -762,59 +804,47 @@
                              "non-default argument follows default argument");
                     goto error;
                 }
-                if (NCH(ch) == 3) {
-                    ch = CHILD(ch, 1);
-                    /* def foo((x)): is not complex, special case. */
-                    if (NCH(ch) != 1) {
-                        /* We have complex arguments, setup for unpacking. */
-                        asdl_seq_SET(posargs, k++,
-                                     compiler_complex_args(c, ch));
-                    } else {
-                        /* def foo((x)): setup for checking NAME below. */
-                        /* Loop because there can be many parens and tuple
-                           unpacking mixed in. */
-                        ch = CHILD(ch, 0);
-                        assert(TYPE(ch) == fpdef);
-                        goto handle_fpdef;
-                    }
-                }
-                if (TYPE(CHILD(ch, 0)) == NAME) {
-                    expr_ty name;
-                    if (!strcmp(STR(CHILD(ch, 0)), "None")) {
-                            ast_error(CHILD(ch, 0), "assignment to None");
-                            goto error;
-                    }
-                    name = Name(NEW_IDENTIFIER(CHILD(ch, 0)),
-                                Param, LINENO(ch), ch->n_col_offset,
-                                c->c_arena);
-                    if (!name)
-                        goto error;
-                    asdl_seq_SET(posargs, k++, name);
+                /* def foo((x)): is not complex, special case. */
+                while (NCH(ch) == 3 && NCH(CHILD(ch, 1)) == 1)
+                    ch = CHILD(CHILD(ch, 1), 0);
 
-                }
+                if (NCH(ch) != 1)
+                    arg = compiler_complex_args(c, CHILD(ch, 1));
+                else
+                    arg = compiler_simple_arg(c, CHILD(ch, 0));
+                if (!arg)
+                    goto error;
+                asdl_seq_SET(posargs, k++, arg);
+
                 i += 2; /* the name and the comma */
                 break;
             case STAR:
                 if (i+1 >= NCH(n)) {
                     ast_error(CHILD(n, i), "no name for vararg");
-		    goto error;
+                    goto error;
                 }
-                if (!strcmp(STR(CHILD(n, i+1)), "None")) {
-                        ast_error(CHILD(n, i+1), "assignment to None");
-                        goto error;
-                }
-                if (TYPE(CHILD(n, i+1)) == COMMA) {
-                    int res = 0;    
+                ch = CHILD(n, i+1);  /* tname or COMMA */
+                if (TYPE(ch) == COMMA) {
+                    int res = 0;
                     i += 2; /* now follows keyword only arguments */
                     res = handle_keywordonly_args(c, n, i,
                                                   kwonlyargs, kwdefaults);
                     if (res == -1) goto error;
                     i = res; /* res has new position to process */
                 }
+                else if (!strcmp(STR(CHILD(ch, 0)), "None")) {
+                    ast_error(CHILD(ch, 0), "assignment to None");
+                    goto error;
+                }
                 else {
-                    vararg = NEW_IDENTIFIER(CHILD(n, i+1));
+                    vararg = NEW_IDENTIFIER(CHILD(ch, 0));
+                    if (NCH(ch) > 1) {
+                            /* there is an annotation on the vararg */
+                            varargannotation = ast_for_expr(c, CHILD(ch, 2));
+                    }
                     i += 3;
-                    if (i < NCH(n) && TYPE(CHILD(n, i)) == NAME) {
+                    if (i < NCH(n) && (TYPE(CHILD(n, i)) == tname
+                                    || TYPE(CHILD(n, i)) == vname)) {
                         int res = 0;
                         res = handle_keywordonly_args(c, n, i,
                                                       kwonlyargs, kwdefaults);
@@ -824,11 +854,17 @@
                 }
                 break;
             case DOUBLESTAR:
-                if (!strcmp(STR(CHILD(n, i+1)), "None")) {
-                        ast_error(CHILD(n, i+1), "assignment to None");
+                ch = CHILD(n, i+1);  /* tname */
+                assert(TYPE(ch) == tname || TYPE(ch) == vname);
+                if (!strcmp(STR(CHILD(ch, 0)), "None")) {
+                        ast_error(CHILD(ch, 0), "assignment to None");
                         goto error;
                 }
-                kwarg = NEW_IDENTIFIER(CHILD(n, i+1));
+                kwarg = NEW_IDENTIFIER(CHILD(ch, 0));
+                if (NCH(ch) > 1) {
+                    /* there is an annotation on the kwarg */
+                    kwargannotation = ast_for_expr(c, CHILD(ch, 2));
+                }
                 i += 3;
                 break;
             default:
@@ -838,8 +874,8 @@
                 goto error;
         }
     }
-    return arguments(posargs, vararg, kwonlyargs, kwarg, 
-                     posdefaults, kwdefaults, c->c_arena);
+    return arguments(posargs, vararg, varargannotation, kwonlyargs, kwarg,
+                    kwargannotation, posdefaults, kwdefaults, c->c_arena);
  error:
     Py_XDECREF(vararg);
     Py_XDECREF(kwarg);
@@ -938,11 +974,12 @@
 static stmt_ty
 ast_for_funcdef(struct compiling *c, const node *n)
 {
-    /* funcdef: 'def' [decorators] NAME parameters ':' suite */
+    /* funcdef: 'def' [decorators] NAME parameters ['->' test] ':' suite */
     identifier name;
     arguments_ty args;
     asdl_seq *body;
     asdl_seq *decorator_seq = NULL;
+    expr_ty returns = NULL;
     int name_i;
 
     REQ(n, funcdef);
@@ -967,11 +1004,17 @@
     args = ast_for_arguments(c, CHILD(n, name_i + 1));
     if (!args)
         return NULL;
+    if (TYPE(CHILD(n, name_i+2)) == RARROW) {
+        returns = ast_for_expr(c, CHILD(n, name_i + 3));
+        if (!returns)
+                return NULL;
+        name_i += 2;
+    }
     body = ast_for_suite(c, CHILD(n, name_i + 3));
     if (!body)
         return NULL;
 
-    return FunctionDef(name, args, body, decorator_seq, LINENO(n),
+    return FunctionDef(name, args, body, decorator_seq, returns, LINENO(n),
                        n->n_col_offset, c->c_arena);
 }
 
@@ -983,7 +1026,8 @@
     expr_ty expression;
 
     if (NCH(n) == 3) {
-        args = arguments(NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
+        args = arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                         NULL, c->c_arena);
         if (!args)
             return NULL;
         expression = ast_for_expr(c, CHILD(n, 2));
@@ -1361,9 +1405,8 @@
         PyArena_AddPyObject(c->c_arena, pynum);
         return Num(pynum, LINENO(n), n->n_col_offset, c->c_arena);
     }
-    case DOT:
-    	/* Ellipsis */
-	return Ellipsis(LINENO(n), n->n_col_offset, c->c_arena);
+    case DOT: /* Ellipsis */
+        return Ellipsis(LINENO(n), n->n_col_offset, c->c_arena);
     case LPAR: /* some parenthesized expressions */
         ch = CHILD(n, 1);
         
@@ -1394,13 +1437,13 @@
         else
             return ast_for_listcomp(c, ch);
     case LBRACE: {
-	/* dictsetmaker: test ':' test (',' test ':' test)* [','] |
-	 *               test (',' test)* [',']  */
-	int i, size;
-	asdl_seq *keys, *values;
-	
-	ch = CHILD(n, 1);
-	if (NCH(ch) == 1 || (NCH(ch) > 0 && STR(CHILD(ch, 1))[0] == ',')) {
+        /* dictsetmaker: test ':' test (',' test ':' test)* [','] |
+         *               test (',' test)* [',']  */
+        int i, size;
+        asdl_seq *keys, *values;
+
+        ch = CHILD(n, 1);
+        if (NCH(ch) == 1 || (NCH(ch) > 0 && STR(CHILD(ch, 1))[0] == ',')) {
             /* it's a set */
             size = (NCH(ch) + 1) / 2; /* +1 in case no trailing comma */
             keys = asdl_seq_new(size, c->c_arena);
@@ -3046,10 +3089,10 @@
         n = CHILD(n, 0);
     }
     if (TYPE(n) == small_stmt) {
-	REQ(n, small_stmt);
-	n = CHILD(n, 0);
-	/* small_stmt: expr_stmt | print_stmt  | del_stmt | pass_stmt
-	             | flow_stmt | import_stmt | global_stmt | assert_stmt
+        REQ(n, small_stmt);
+        n = CHILD(n, 0);
+        /* small_stmt: expr_stmt | print_stmt  | del_stmt | pass_stmt
+                     | flow_stmt | import_stmt | global_stmt | assert_stmt
         */
         switch (TYPE(n)) {
             case expr_stmt:
diff --git a/Python/ceval.c b/Python/ceval.c
index 82aa668..f5ebb8e 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2293,10 +2293,37 @@
 		{
 		    int posdefaults = oparg & 0xff;
 		    int kwdefaults = (oparg>>8) & 0xff;
+		    int num_annotations = (oparg >> 16) & 0x7fff;
 
 			v = POP(); /* code object */
 			x = PyFunction_New(v, f->f_globals);
 			Py_DECREF(v);
+
+			if (x != NULL && num_annotations > 0) {
+				Py_ssize_t name_ix;
+				u = POP(); /* names of args with annotations */
+				v = PyDict_New();
+				if (v == NULL) {
+					Py_DECREF(x);
+					x = NULL;
+					break;
+				}
+				name_ix = PyTuple_Size(u);
+				assert(num_annotations == name_ix+1);
+				while (name_ix > 0) {
+					--name_ix;
+					t = PyTuple_GET_ITEM(u, name_ix);
+					w = POP();
+					/* XXX(nnorwitz): check for errors */
+					PyDict_SetItem(v, t, w);
+					Py_DECREF(w);
+				}
+
+				err = PyFunction_SetAnnotations(x, v);
+				Py_DECREF(v);
+				Py_DECREF(u);
+			}
+
 			/* XXX Maybe this should be a separate opcode? */
 			if (x != NULL && posdefaults > 0) {
 				v = PyTuple_New(posdefaults);
@@ -2322,6 +2349,7 @@
 				while (--kwdefaults >= 0) {
 					w = POP(); /* default value */
 					u = POP(); /* kw only arg name */
+					/* XXX(nnorwitz): check for errors */
 					PyDict_SetItem(v, u, w);
 				}
 				err = PyFunction_SetKwDefaults(x, v);
diff --git a/Python/compile.c b/Python/compile.c
index bdafd92..d2374a9 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -832,7 +832,7 @@
 
 		case RAISE_VARARGS:
 			return -oparg;
-#define NARGS(o) (((o) % 256) + 2*((o) / 256))
+#define NARGS(o) (((o) % 256) + 2*(((o) / 256) % 256))
 		case CALL_FUNCTION:
 			return -NARGS(oparg);
 		case CALL_FUNCTION_VAR:
@@ -841,7 +841,7 @@
 		case CALL_FUNCTION_VAR_KW:
 			return -NARGS(oparg)-2;
 		case MAKE_FUNCTION:
-			return -NARGS(oparg);
+			return -NARGS(oparg) - ((oparg >> 16) & 0xffff);
 #undef NARGS
 		case BUILD_SLICE:
 			if (oparg == 3)
@@ -1267,14 +1267,37 @@
 }
 
 static int
+compiler_unpack_nested(struct compiler *c, asdl_seq *args) {
+	int i, len;
+	len = asdl_seq_LEN(args);
+	ADDOP_I(c, UNPACK_SEQUENCE, len);
+	for (i = 0; i < len; i++) {
+		arg_ty elt = (arg_ty)asdl_seq_GET(args, i);
+		switch (elt->kind) {
+		case SimpleArg_kind:
+			if (!compiler_nameop(c, elt->v.SimpleArg.arg, Store))
+				return 0;
+			break;
+		case NestedArgs_kind:
+			if (!compiler_unpack_nested(c, elt->v.NestedArgs.args))
+				return 0;
+			break;
+		default:
+			return 0;
+		}
+    }
+    return 1;
+}
+
+static int
 compiler_arguments(struct compiler *c, arguments_ty args)
 {
 	int i;
 	int n = asdl_seq_LEN(args->args);
-	/* Correctly handle nested argument lists */
+
 	for (i = 0; i < n; i++) {
-		expr_ty arg = (expr_ty)asdl_seq_GET(args->args, i);
-		if (arg->kind == Tuple_kind) {
+		arg_ty arg = (arg_ty)asdl_seq_GET(args->args, i);
+		if (arg->kind == NestedArgs_kind) {
 			PyObject *id = PyString_FromFormat(".%d", i);
 			if (id == NULL) {
 				return 0;
@@ -1284,7 +1307,8 @@
 				return 0;
 			}
 			Py_DECREF(id);
-			VISIT(c, expr, arg);
+			if (!compiler_unpack_nested(c, arg->v.NestedArgs.args))
+				return 0;
 		}
 	}
 	return 1;
@@ -1296,10 +1320,10 @@
 {
 	int i, default_count = 0;
 	for (i = 0; i < asdl_seq_LEN(kwonlyargs); i++) {
-		expr_ty arg = asdl_seq_GET(kwonlyargs, i);
+		arg_ty arg = asdl_seq_GET(kwonlyargs, i);
 		expr_ty default_ = asdl_seq_GET(kw_defaults, i);
 		if (default_) {
-			ADDOP_O(c, LOAD_CONST, arg->v.Name.id, consts);
+			ADDOP_O(c, LOAD_CONST, arg->v.SimpleArg.arg, consts);
 			if (!compiler_visit_expr(c, default_)) {
 			    return -1;
 			}
@@ -1310,14 +1334,112 @@
 }
 
 static int
+compiler_visit_argannotation(struct compiler *c, identifier id,
+    expr_ty annotation, PyObject *names)
+{
+	if (annotation) {
+		VISIT(c, expr, annotation);
+		if (PyList_Append(names, id))
+			return -1;
+	}
+	return 0;
+}
+
+static int
+compiler_visit_argannotations(struct compiler *c, asdl_seq* args,
+                              PyObject *names)
+{
+	int i, error;
+	for (i = 0; i < asdl_seq_LEN(args); i++) {
+		arg_ty arg = (arg_ty)asdl_seq_GET(args, i);
+		if (arg->kind == NestedArgs_kind)
+			error = compiler_visit_argannotations(
+			           c,
+			           arg->v.NestedArgs.args,
+			           names);
+		else
+			error = compiler_visit_argannotation(
+			           c,
+			           arg->v.SimpleArg.arg,
+			           arg->v.SimpleArg.annotation,
+			           names);
+		if (error)
+			return error;
+	}
+	return 0;
+}
+
+static int
+compiler_visit_annotations(struct compiler *c, arguments_ty args,
+                           expr_ty returns)
+{
+	/* push arg annotations and a list of the argument names. return the #
+	   of items pushed. this is out-of-order wrt the source code. */
+	static identifier return_str;
+	PyObject *names;
+	int len;
+	names = PyList_New(0);
+	if (!names)
+		return -1;
+
+	if (compiler_visit_argannotations(c, args->args, names))
+		goto error;
+	if (args->varargannotation &&
+	    compiler_visit_argannotation(c, args->vararg,
+	                                 args->varargannotation, names))
+		goto error;
+	if (compiler_visit_argannotations(c, args->kwonlyargs, names))
+		goto error;
+	if (args->kwargannotation &&
+	    compiler_visit_argannotation(c, args->kwarg,
+	                                 args->kwargannotation, names))
+		goto error;
+
+	if (!return_str) {
+		return_str = PyString_InternFromString("return");
+		if (!return_str)
+			goto error;
+	}
+	if (compiler_visit_argannotation(c, return_str, returns, names)) {
+		goto error;
+	}
+
+	len = PyList_GET_SIZE(names);
+	if (len) {
+		/* convert names to a tuple and place on stack */
+		PyObject *elt;
+		int i;
+		PyObject *s = PyTuple_New(len);
+		if (!s)
+			goto error;
+		for (i = 0; i < len; i++) {
+			elt = PyList_GET_ITEM(names, i);
+			Py_INCREF(elt);
+			PyTuple_SET_ITEM(s, i, elt);
+		}
+		ADDOP_O(c, LOAD_CONST, s, consts);
+		Py_DECREF(s);
+		len++; /* include the just-pushed tuple */
+	}
+	Py_DECREF(names);
+	return len;
+
+error:
+	Py_DECREF(names);
+	return -1;
+}
+
+static int
 compiler_function(struct compiler *c, stmt_ty s)
 {
 	PyCodeObject *co;
 	PyObject *first_const = Py_None;
 	arguments_ty args = s->v.FunctionDef.args;
+	expr_ty returns = s->v.FunctionDef.returns;
 	asdl_seq* decos = s->v.FunctionDef.decorators;
 	stmt_ty st;
 	int i, n, docstring, kw_default_count = 0, arglength;
+	int num_annotations;
 
 	assert(s->kind == FunctionDef_kind);
 
@@ -1332,6 +1454,7 @@
 	}
 	if (args->defaults)
 		VISIT_SEQ(c, expr, args->defaults);
+	num_annotations = compiler_visit_annotations(c, args, returns);
 
 	if (!compiler_enter_scope(c, s->v.FunctionDef.name, (void *)s,
 				  s->lineno))
@@ -1364,9 +1487,11 @@
 
 	arglength = asdl_seq_LEN(args->defaults);
 	arglength |= kw_default_count << 8;
+	arglength |= num_annotations << 16;
 	compiler_make_closure(c, co, arglength);
 	Py_DECREF(co);
 
+        /* decorators */
 	for (i = 0; i < asdl_seq_LEN(decos); i++) {
 		ADDOP_I(c, CALL_FUNCTION, 1);
 	}
diff --git a/Python/graminit.c b/Python/graminit.c
index 0e94db4..93ee69a 100644
--- a/Python/graminit.c
+++ b/Python/graminit.c
@@ -99,29 +99,38 @@
 static arc arcs_5_3[1] = {
 	{20, 4},
 };
-static arc arcs_5_4[1] = {
+static arc arcs_5_4[2] = {
 	{21, 5},
+	{23, 6},
 };
 static arc arcs_5_5[1] = {
-	{22, 6},
+	{22, 7},
 };
 static arc arcs_5_6[1] = {
-	{0, 6},
+	{24, 8},
 };
-static state states_5[7] = {
+static arc arcs_5_7[1] = {
+	{23, 6},
+};
+static arc arcs_5_8[1] = {
+	{0, 8},
+};
+static state states_5[9] = {
 	{2, arcs_5_0},
 	{1, arcs_5_1},
 	{1, arcs_5_2},
 	{1, arcs_5_3},
-	{1, arcs_5_4},
+	{2, arcs_5_4},
 	{1, arcs_5_5},
 	{1, arcs_5_6},
+	{1, arcs_5_7},
+	{1, arcs_5_8},
 };
 static arc arcs_6_0[1] = {
 	{13, 1},
 };
 static arc arcs_6_1[2] = {
-	{23, 2},
+	{25, 2},
 	{15, 3},
 };
 static arc arcs_6_2[1] = {
@@ -137,54 +146,54 @@
 	{1, arcs_6_3},
 };
 static arc arcs_7_0[3] = {
-	{24, 1},
-	{28, 2},
-	{29, 3},
+	{26, 1},
+	{29, 2},
+	{31, 3},
 };
 static arc arcs_7_1[3] = {
-	{25, 4},
-	{27, 5},
+	{27, 4},
+	{28, 5},
 	{0, 1},
 };
 static arc arcs_7_2[3] = {
-	{19, 6},
-	{27, 7},
+	{30, 6},
+	{28, 7},
 	{0, 2},
 };
 static arc arcs_7_3[1] = {
-	{19, 8},
+	{30, 8},
 };
 static arc arcs_7_4[1] = {
-	{26, 9},
+	{22, 9},
 };
 static arc arcs_7_5[4] = {
-	{24, 1},
-	{28, 2},
-	{29, 3},
+	{26, 1},
+	{29, 2},
+	{31, 3},
 	{0, 5},
 };
 static arc arcs_7_6[2] = {
-	{27, 7},
+	{28, 7},
 	{0, 6},
 };
 static arc arcs_7_7[2] = {
-	{19, 10},
-	{29, 3},
+	{30, 10},
+	{31, 3},
 };
 static arc arcs_7_8[1] = {
 	{0, 8},
 };
 static arc arcs_7_9[2] = {
-	{27, 5},
+	{28, 5},
 	{0, 9},
 };
 static arc arcs_7_10[3] = {
-	{27, 7},
-	{25, 11},
+	{28, 7},
+	{27, 11},
 	{0, 10},
 };
 static arc arcs_7_11[1] = {
-	{26, 6},
+	{22, 6},
 };
 static state states_7[12] = {
 	{3, arcs_7_0},
@@ -200,261 +209,330 @@
 	{3, arcs_7_10},
 	{1, arcs_7_11},
 };
-static arc arcs_8_0[2] = {
+static arc arcs_8_0[1] = {
 	{19, 1},
-	{13, 2},
 };
-static arc arcs_8_1[1] = {
+static arc arcs_8_1[2] = {
+	{23, 2},
 	{0, 1},
 };
 static arc arcs_8_2[1] = {
-	{30, 3},
+	{22, 3},
 };
 static arc arcs_8_3[1] = {
-	{15, 1},
+	{0, 3},
 };
 static state states_8[4] = {
-	{2, arcs_8_0},
-	{1, arcs_8_1},
+	{1, arcs_8_0},
+	{2, arcs_8_1},
 	{1, arcs_8_2},
 	{1, arcs_8_3},
 };
-static arc arcs_9_0[1] = {
-	{24, 1},
+static arc arcs_9_0[2] = {
+	{30, 1},
+	{13, 2},
 };
-static arc arcs_9_1[2] = {
-	{27, 2},
+static arc arcs_9_1[1] = {
 	{0, 1},
 };
-static arc arcs_9_2[2] = {
-	{24, 1},
+static arc arcs_9_2[1] = {
+	{32, 3},
+};
+static arc arcs_9_3[1] = {
+	{15, 1},
+};
+static state states_9[4] = {
+	{2, arcs_9_0},
+	{1, arcs_9_1},
+	{1, arcs_9_2},
+	{1, arcs_9_3},
+};
+static arc arcs_10_0[1] = {
+	{26, 1},
+};
+static arc arcs_10_1[2] = {
+	{28, 2},
+	{0, 1},
+};
+static arc arcs_10_2[2] = {
+	{26, 1},
 	{0, 2},
 };
-static state states_9[3] = {
-	{1, arcs_9_0},
-	{2, arcs_9_1},
-	{2, arcs_9_2},
+static state states_10[3] = {
+	{1, arcs_10_0},
+	{2, arcs_10_1},
+	{2, arcs_10_2},
 };
-static arc arcs_10_0[2] = {
-	{3, 1},
-	{4, 1},
+static arc arcs_11_0[3] = {
+	{34, 1},
+	{29, 2},
+	{31, 3},
 };
-static arc arcs_10_1[1] = {
+static arc arcs_11_1[3] = {
+	{27, 4},
+	{28, 5},
 	{0, 1},
 };
-static state states_10[2] = {
-	{2, arcs_10_0},
-	{1, arcs_10_1},
-};
-static arc arcs_11_0[1] = {
-	{31, 1},
-};
-static arc arcs_11_1[2] = {
-	{32, 2},
-	{2, 3},
-};
-static arc arcs_11_2[2] = {
-	{31, 1},
-	{2, 3},
+static arc arcs_11_2[3] = {
+	{35, 6},
+	{28, 7},
+	{0, 2},
 };
 static arc arcs_11_3[1] = {
-	{0, 3},
+	{35, 8},
 };
-static state states_11[4] = {
-	{1, arcs_11_0},
-	{2, arcs_11_1},
-	{2, arcs_11_2},
-	{1, arcs_11_3},
+static arc arcs_11_4[1] = {
+	{22, 9},
 };
-static arc arcs_12_0[8] = {
-	{33, 1},
+static arc arcs_11_5[4] = {
 	{34, 1},
-	{35, 1},
-	{36, 1},
-	{37, 1},
-	{38, 1},
-	{39, 1},
-	{40, 1},
+	{29, 2},
+	{31, 3},
+	{0, 5},
+};
+static arc arcs_11_6[2] = {
+	{28, 7},
+	{0, 6},
+};
+static arc arcs_11_7[2] = {
+	{35, 10},
+	{31, 3},
+};
+static arc arcs_11_8[1] = {
+	{0, 8},
+};
+static arc arcs_11_9[2] = {
+	{28, 5},
+	{0, 9},
+};
+static arc arcs_11_10[3] = {
+	{28, 7},
+	{27, 11},
+	{0, 10},
+};
+static arc arcs_11_11[1] = {
+	{22, 6},
+};
+static state states_11[12] = {
+	{3, arcs_11_0},
+	{3, arcs_11_1},
+	{3, arcs_11_2},
+	{1, arcs_11_3},
+	{1, arcs_11_4},
+	{4, arcs_11_5},
+	{2, arcs_11_6},
+	{2, arcs_11_7},
+	{1, arcs_11_8},
+	{2, arcs_11_9},
+	{3, arcs_11_10},
+	{1, arcs_11_11},
+};
+static arc arcs_12_0[1] = {
+	{19, 1},
 };
 static arc arcs_12_1[1] = {
 	{0, 1},
 };
 static state states_12[2] = {
-	{8, arcs_12_0},
+	{1, arcs_12_0},
 	{1, arcs_12_1},
 };
-static arc arcs_13_0[1] = {
-	{9, 1},
+static arc arcs_13_0[2] = {
+	{35, 1},
+	{13, 2},
 };
-static arc arcs_13_1[3] = {
-	{41, 2},
-	{25, 3},
+static arc arcs_13_1[1] = {
 	{0, 1},
 };
-static arc arcs_13_2[2] = {
-	{42, 4},
-	{9, 4},
+static arc arcs_13_2[1] = {
+	{36, 3},
 };
-static arc arcs_13_3[2] = {
-	{42, 5},
-	{9, 5},
+static arc arcs_13_3[1] = {
+	{15, 1},
 };
-static arc arcs_13_4[1] = {
-	{0, 4},
+static state states_13[4] = {
+	{2, arcs_13_0},
+	{1, arcs_13_1},
+	{1, arcs_13_2},
+	{1, arcs_13_3},
 };
-static arc arcs_13_5[2] = {
-	{25, 3},
-	{0, 5},
+static arc arcs_14_0[1] = {
+	{34, 1},
 };
-static state states_13[6] = {
-	{1, arcs_13_0},
-	{3, arcs_13_1},
-	{2, arcs_13_2},
-	{2, arcs_13_3},
-	{1, arcs_13_4},
-	{2, arcs_13_5},
+static arc arcs_14_1[2] = {
+	{28, 2},
+	{0, 1},
 };
-static arc arcs_14_0[12] = {
+static arc arcs_14_2[2] = {
+	{34, 1},
+	{0, 2},
+};
+static state states_14[3] = {
+	{1, arcs_14_0},
+	{2, arcs_14_1},
+	{2, arcs_14_2},
+};
+static arc arcs_15_0[2] = {
+	{3, 1},
+	{4, 1},
+};
+static arc arcs_15_1[1] = {
+	{0, 1},
+};
+static state states_15[2] = {
+	{2, arcs_15_0},
+	{1, arcs_15_1},
+};
+static arc arcs_16_0[1] = {
+	{37, 1},
+};
+static arc arcs_16_1[2] = {
+	{38, 2},
+	{2, 3},
+};
+static arc arcs_16_2[2] = {
+	{37, 1},
+	{2, 3},
+};
+static arc arcs_16_3[1] = {
+	{0, 3},
+};
+static state states_16[4] = {
+	{1, arcs_16_0},
+	{2, arcs_16_1},
+	{2, arcs_16_2},
+	{1, arcs_16_3},
+};
+static arc arcs_17_0[8] = {
+	{39, 1},
+	{40, 1},
+	{41, 1},
+	{42, 1},
 	{43, 1},
 	{44, 1},
 	{45, 1},
 	{46, 1},
-	{47, 1},
-	{48, 1},
+};
+static arc arcs_17_1[1] = {
+	{0, 1},
+};
+static state states_17[2] = {
+	{8, arcs_17_0},
+	{1, arcs_17_1},
+};
+static arc arcs_18_0[1] = {
+	{9, 1},
+};
+static arc arcs_18_1[3] = {
+	{47, 2},
+	{27, 3},
+	{0, 1},
+};
+static arc arcs_18_2[2] = {
+	{48, 4},
+	{9, 4},
+};
+static arc arcs_18_3[2] = {
+	{48, 5},
+	{9, 5},
+};
+static arc arcs_18_4[1] = {
+	{0, 4},
+};
+static arc arcs_18_5[2] = {
+	{27, 3},
+	{0, 5},
+};
+static state states_18[6] = {
+	{1, arcs_18_0},
+	{3, arcs_18_1},
+	{2, arcs_18_2},
+	{2, arcs_18_3},
+	{1, arcs_18_4},
+	{2, arcs_18_5},
+};
+static arc arcs_19_0[12] = {
 	{49, 1},
 	{50, 1},
 	{51, 1},
 	{52, 1},
 	{53, 1},
 	{54, 1},
-};
-static arc arcs_14_1[1] = {
-	{0, 1},
-};
-static state states_14[2] = {
-	{12, arcs_14_0},
-	{1, arcs_14_1},
-};
-static arc arcs_15_0[1] = {
 	{55, 1},
-};
-static arc arcs_15_1[3] = {
-	{26, 2},
-	{56, 3},
-	{0, 1},
-};
-static arc arcs_15_2[2] = {
-	{27, 4},
-	{0, 2},
-};
-static arc arcs_15_3[1] = {
-	{26, 5},
-};
-static arc arcs_15_4[2] = {
-	{26, 2},
-	{0, 4},
-};
-static arc arcs_15_5[2] = {
-	{27, 6},
-	{0, 5},
-};
-static arc arcs_15_6[1] = {
-	{26, 7},
-};
-static arc arcs_15_7[2] = {
-	{27, 8},
-	{0, 7},
-};
-static arc arcs_15_8[2] = {
-	{26, 7},
-	{0, 8},
-};
-static state states_15[9] = {
-	{1, arcs_15_0},
-	{3, arcs_15_1},
-	{2, arcs_15_2},
-	{1, arcs_15_3},
-	{2, arcs_15_4},
-	{2, arcs_15_5},
-	{1, arcs_15_6},
-	{2, arcs_15_7},
-	{2, arcs_15_8},
-};
-static arc arcs_16_0[1] = {
+	{56, 1},
 	{57, 1},
-};
-static arc arcs_16_1[1] = {
-	{58, 2},
-};
-static arc arcs_16_2[1] = {
-	{0, 2},
-};
-static state states_16[3] = {
-	{1, arcs_16_0},
-	{1, arcs_16_1},
-	{1, arcs_16_2},
-};
-static arc arcs_17_0[1] = {
+	{58, 1},
 	{59, 1},
-};
-static arc arcs_17_1[1] = {
-	{0, 1},
-};
-static state states_17[2] = {
-	{1, arcs_17_0},
-	{1, arcs_17_1},
-};
-static arc arcs_18_0[5] = {
 	{60, 1},
-	{61, 1},
-	{62, 1},
-	{63, 1},
-	{64, 1},
-};
-static arc arcs_18_1[1] = {
-	{0, 1},
-};
-static state states_18[2] = {
-	{5, arcs_18_0},
-	{1, arcs_18_1},
-};
-static arc arcs_19_0[1] = {
-	{65, 1},
 };
 static arc arcs_19_1[1] = {
 	{0, 1},
 };
 static state states_19[2] = {
-	{1, arcs_19_0},
+	{12, arcs_19_0},
 	{1, arcs_19_1},
 };
 static arc arcs_20_0[1] = {
-	{66, 1},
+	{61, 1},
 };
-static arc arcs_20_1[1] = {
+static arc arcs_20_1[3] = {
+	{22, 2},
+	{62, 3},
 	{0, 1},
 };
-static state states_20[2] = {
+static arc arcs_20_2[2] = {
+	{28, 4},
+	{0, 2},
+};
+static arc arcs_20_3[1] = {
+	{22, 5},
+};
+static arc arcs_20_4[2] = {
+	{22, 2},
+	{0, 4},
+};
+static arc arcs_20_5[2] = {
+	{28, 6},
+	{0, 5},
+};
+static arc arcs_20_6[1] = {
+	{22, 7},
+};
+static arc arcs_20_7[2] = {
+	{28, 8},
+	{0, 7},
+};
+static arc arcs_20_8[2] = {
+	{22, 7},
+	{0, 8},
+};
+static state states_20[9] = {
 	{1, arcs_20_0},
-	{1, arcs_20_1},
+	{3, arcs_20_1},
+	{2, arcs_20_2},
+	{1, arcs_20_3},
+	{2, arcs_20_4},
+	{2, arcs_20_5},
+	{1, arcs_20_6},
+	{2, arcs_20_7},
+	{2, arcs_20_8},
 };
 static arc arcs_21_0[1] = {
-	{67, 1},
+	{63, 1},
 };
-static arc arcs_21_1[2] = {
-	{9, 2},
-	{0, 1},
+static arc arcs_21_1[1] = {
+	{64, 2},
 };
 static arc arcs_21_2[1] = {
 	{0, 2},
 };
 static state states_21[3] = {
 	{1, arcs_21_0},
-	{2, arcs_21_1},
+	{1, arcs_21_1},
 	{1, arcs_21_2},
 };
 static arc arcs_22_0[1] = {
-	{42, 1},
+	{65, 1},
 };
 static arc arcs_22_1[1] = {
 	{0, 1},
@@ -463,662 +541,646 @@
 	{1, arcs_22_0},
 	{1, arcs_22_1},
 };
-static arc arcs_23_0[1] = {
+static arc arcs_23_0[5] = {
+	{66, 1},
+	{67, 1},
 	{68, 1},
-};
-static arc arcs_23_1[2] = {
-	{26, 2},
-	{0, 1},
-};
-static arc arcs_23_2[2] = {
-	{27, 3},
-	{0, 2},
-};
-static arc arcs_23_3[1] = {
-	{26, 4},
-};
-static arc arcs_23_4[2] = {
-	{27, 5},
-	{0, 4},
-};
-static arc arcs_23_5[1] = {
-	{26, 6},
-};
-static arc arcs_23_6[1] = {
-	{0, 6},
-};
-static state states_23[7] = {
-	{1, arcs_23_0},
-	{2, arcs_23_1},
-	{2, arcs_23_2},
-	{1, arcs_23_3},
-	{2, arcs_23_4},
-	{1, arcs_23_5},
-	{1, arcs_23_6},
-};
-static arc arcs_24_0[2] = {
 	{69, 1},
 	{70, 1},
 };
+static arc arcs_23_1[1] = {
+	{0, 1},
+};
+static state states_23[2] = {
+	{5, arcs_23_0},
+	{1, arcs_23_1},
+};
+static arc arcs_24_0[1] = {
+	{71, 1},
+};
 static arc arcs_24_1[1] = {
 	{0, 1},
 };
 static state states_24[2] = {
-	{2, arcs_24_0},
+	{1, arcs_24_0},
 	{1, arcs_24_1},
 };
 static arc arcs_25_0[1] = {
-	{71, 1},
+	{72, 1},
 };
 static arc arcs_25_1[1] = {
-	{72, 2},
+	{0, 1},
 };
-static arc arcs_25_2[1] = {
-	{0, 2},
-};
-static state states_25[3] = {
+static state states_25[2] = {
 	{1, arcs_25_0},
 	{1, arcs_25_1},
-	{1, arcs_25_2},
 };
 static arc arcs_26_0[1] = {
 	{73, 1},
 };
 static arc arcs_26_1[2] = {
-	{74, 2},
-	{12, 3},
+	{9, 2},
+	{0, 1},
 };
-static arc arcs_26_2[3] = {
-	{74, 2},
-	{12, 3},
-	{71, 4},
+static arc arcs_26_2[1] = {
+	{0, 2},
 };
-static arc arcs_26_3[1] = {
-	{71, 4},
-};
-static arc arcs_26_4[3] = {
-	{28, 5},
-	{13, 6},
-	{75, 5},
-};
-static arc arcs_26_5[1] = {
-	{0, 5},
-};
-static arc arcs_26_6[1] = {
-	{75, 7},
-};
-static arc arcs_26_7[1] = {
-	{15, 5},
-};
-static state states_26[8] = {
+static state states_26[3] = {
 	{1, arcs_26_0},
 	{2, arcs_26_1},
-	{3, arcs_26_2},
-	{1, arcs_26_3},
-	{3, arcs_26_4},
-	{1, arcs_26_5},
-	{1, arcs_26_6},
-	{1, arcs_26_7},
+	{1, arcs_26_2},
 };
 static arc arcs_27_0[1] = {
-	{19, 1},
+	{48, 1},
 };
-static arc arcs_27_1[2] = {
-	{77, 2},
+static arc arcs_27_1[1] = {
 	{0, 1},
 };
-static arc arcs_27_2[1] = {
-	{19, 3},
-};
-static arc arcs_27_3[1] = {
-	{0, 3},
-};
-static state states_27[4] = {
+static state states_27[2] = {
 	{1, arcs_27_0},
-	{2, arcs_27_1},
-	{1, arcs_27_2},
-	{1, arcs_27_3},
+	{1, arcs_27_1},
 };
 static arc arcs_28_0[1] = {
-	{12, 1},
+	{74, 1},
 };
 static arc arcs_28_1[2] = {
-	{77, 2},
+	{22, 2},
 	{0, 1},
 };
-static arc arcs_28_2[1] = {
-	{19, 3},
+static arc arcs_28_2[2] = {
+	{28, 3},
+	{0, 2},
 };
 static arc arcs_28_3[1] = {
-	{0, 3},
-};
-static state states_28[4] = {
-	{1, arcs_28_0},
-	{2, arcs_28_1},
-	{1, arcs_28_2},
-	{1, arcs_28_3},
-};
-static arc arcs_29_0[1] = {
-	{76, 1},
-};
-static arc arcs_29_1[2] = {
-	{27, 2},
-	{0, 1},
-};
-static arc arcs_29_2[2] = {
-	{76, 1},
-	{0, 2},
-};
-static state states_29[3] = {
-	{1, arcs_29_0},
-	{2, arcs_29_1},
-	{2, arcs_29_2},
-};
-static arc arcs_30_0[1] = {
-	{78, 1},
-};
-static arc arcs_30_1[2] = {
-	{27, 0},
-	{0, 1},
-};
-static state states_30[2] = {
-	{1, arcs_30_0},
-	{2, arcs_30_1},
-};
-static arc arcs_31_0[1] = {
-	{19, 1},
-};
-static arc arcs_31_1[2] = {
-	{74, 0},
-	{0, 1},
-};
-static state states_31[2] = {
-	{1, arcs_31_0},
-	{2, arcs_31_1},
-};
-static arc arcs_32_0[1] = {
-	{79, 1},
-};
-static arc arcs_32_1[1] = {
-	{19, 2},
-};
-static arc arcs_32_2[2] = {
-	{27, 1},
-	{0, 2},
-};
-static state states_32[3] = {
-	{1, arcs_32_0},
-	{1, arcs_32_1},
-	{2, arcs_32_2},
-};
-static arc arcs_33_0[1] = {
-	{80, 1},
-};
-static arc arcs_33_1[1] = {
-	{26, 2},
-};
-static arc arcs_33_2[2] = {
-	{27, 3},
-	{0, 2},
-};
-static arc arcs_33_3[1] = {
-	{26, 4},
-};
-static arc arcs_33_4[1] = {
-	{0, 4},
-};
-static state states_33[5] = {
-	{1, arcs_33_0},
-	{1, arcs_33_1},
-	{2, arcs_33_2},
-	{1, arcs_33_3},
-	{1, arcs_33_4},
-};
-static arc arcs_34_0[7] = {
-	{81, 1},
-	{82, 1},
-	{83, 1},
-	{84, 1},
-	{85, 1},
-	{17, 1},
-	{86, 1},
-};
-static arc arcs_34_1[1] = {
-	{0, 1},
-};
-static state states_34[2] = {
-	{7, arcs_34_0},
-	{1, arcs_34_1},
-};
-static arc arcs_35_0[1] = {
-	{87, 1},
-};
-static arc arcs_35_1[1] = {
-	{26, 2},
-};
-static arc arcs_35_2[1] = {
-	{21, 3},
-};
-static arc arcs_35_3[1] = {
 	{22, 4},
 };
-static arc arcs_35_4[3] = {
-	{88, 1},
-	{89, 5},
+static arc arcs_28_4[2] = {
+	{28, 5},
 	{0, 4},
 };
-static arc arcs_35_5[1] = {
-	{21, 6},
-};
-static arc arcs_35_6[1] = {
-	{22, 7},
-};
-static arc arcs_35_7[1] = {
-	{0, 7},
-};
-static state states_35[8] = {
-	{1, arcs_35_0},
-	{1, arcs_35_1},
-	{1, arcs_35_2},
-	{1, arcs_35_3},
-	{3, arcs_35_4},
-	{1, arcs_35_5},
-	{1, arcs_35_6},
-	{1, arcs_35_7},
-};
-static arc arcs_36_0[1] = {
-	{90, 1},
-};
-static arc arcs_36_1[1] = {
-	{26, 2},
-};
-static arc arcs_36_2[1] = {
-	{21, 3},
-};
-static arc arcs_36_3[1] = {
-	{22, 4},
-};
-static arc arcs_36_4[2] = {
-	{89, 5},
-	{0, 4},
-};
-static arc arcs_36_5[1] = {
-	{21, 6},
-};
-static arc arcs_36_6[1] = {
-	{22, 7},
-};
-static arc arcs_36_7[1] = {
-	{0, 7},
-};
-static state states_36[8] = {
-	{1, arcs_36_0},
-	{1, arcs_36_1},
-	{1, arcs_36_2},
-	{1, arcs_36_3},
-	{2, arcs_36_4},
-	{1, arcs_36_5},
-	{1, arcs_36_6},
-	{1, arcs_36_7},
-};
-static arc arcs_37_0[1] = {
-	{91, 1},
-};
-static arc arcs_37_1[1] = {
-	{58, 2},
-};
-static arc arcs_37_2[1] = {
-	{92, 3},
-};
-static arc arcs_37_3[1] = {
-	{9, 4},
-};
-static arc arcs_37_4[1] = {
-	{21, 5},
-};
-static arc arcs_37_5[1] = {
+static arc arcs_28_5[1] = {
 	{22, 6},
 };
-static arc arcs_37_6[2] = {
-	{89, 7},
+static arc arcs_28_6[1] = {
 	{0, 6},
 };
-static arc arcs_37_7[1] = {
-	{21, 8},
+static state states_28[7] = {
+	{1, arcs_28_0},
+	{2, arcs_28_1},
+	{2, arcs_28_2},
+	{1, arcs_28_3},
+	{2, arcs_28_4},
+	{1, arcs_28_5},
+	{1, arcs_28_6},
 };
-static arc arcs_37_8[1] = {
-	{22, 9},
+static arc arcs_29_0[2] = {
+	{75, 1},
+	{76, 1},
 };
-static arc arcs_37_9[1] = {
-	{0, 9},
+static arc arcs_29_1[1] = {
+	{0, 1},
 };
-static state states_37[10] = {
-	{1, arcs_37_0},
-	{1, arcs_37_1},
-	{1, arcs_37_2},
-	{1, arcs_37_3},
-	{1, arcs_37_4},
-	{1, arcs_37_5},
-	{2, arcs_37_6},
-	{1, arcs_37_7},
-	{1, arcs_37_8},
-	{1, arcs_37_9},
+static state states_29[2] = {
+	{2, arcs_29_0},
+	{1, arcs_29_1},
 };
-static arc arcs_38_0[1] = {
-	{93, 1},
-};
-static arc arcs_38_1[1] = {
-	{21, 2},
-};
-static arc arcs_38_2[1] = {
-	{22, 3},
-};
-static arc arcs_38_3[2] = {
-	{94, 4},
-	{95, 5},
-};
-static arc arcs_38_4[1] = {
-	{21, 6},
-};
-static arc arcs_38_5[1] = {
-	{21, 7},
-};
-static arc arcs_38_6[1] = {
-	{22, 8},
-};
-static arc arcs_38_7[1] = {
-	{22, 9},
-};
-static arc arcs_38_8[4] = {
-	{94, 4},
-	{89, 10},
-	{95, 5},
-	{0, 8},
-};
-static arc arcs_38_9[1] = {
-	{0, 9},
-};
-static arc arcs_38_10[1] = {
-	{21, 11},
-};
-static arc arcs_38_11[1] = {
-	{22, 12},
-};
-static arc arcs_38_12[2] = {
-	{95, 5},
-	{0, 12},
-};
-static state states_38[13] = {
-	{1, arcs_38_0},
-	{1, arcs_38_1},
-	{1, arcs_38_2},
-	{2, arcs_38_3},
-	{1, arcs_38_4},
-	{1, arcs_38_5},
-	{1, arcs_38_6},
-	{1, arcs_38_7},
-	{4, arcs_38_8},
-	{1, arcs_38_9},
-	{1, arcs_38_10},
-	{1, arcs_38_11},
-	{2, arcs_38_12},
-};
-static arc arcs_39_0[1] = {
-	{96, 1},
-};
-static arc arcs_39_1[1] = {
-	{26, 2},
-};
-static arc arcs_39_2[2] = {
-	{97, 3},
-	{21, 4},
-};
-static arc arcs_39_3[1] = {
-	{21, 4},
-};
-static arc arcs_39_4[1] = {
-	{22, 5},
-};
-static arc arcs_39_5[1] = {
-	{0, 5},
-};
-static state states_39[6] = {
-	{1, arcs_39_0},
-	{1, arcs_39_1},
-	{2, arcs_39_2},
-	{1, arcs_39_3},
-	{1, arcs_39_4},
-	{1, arcs_39_5},
-};
-static arc arcs_40_0[1] = {
+static arc arcs_30_0[1] = {
 	{77, 1},
 };
-static arc arcs_40_1[1] = {
-	{98, 2},
+static arc arcs_30_1[1] = {
+	{78, 2},
 };
-static arc arcs_40_2[1] = {
+static arc arcs_30_2[1] = {
 	{0, 2},
 };
-static state states_40[3] = {
+static state states_30[3] = {
+	{1, arcs_30_0},
+	{1, arcs_30_1},
+	{1, arcs_30_2},
+};
+static arc arcs_31_0[1] = {
+	{79, 1},
+};
+static arc arcs_31_1[2] = {
+	{80, 2},
+	{12, 3},
+};
+static arc arcs_31_2[3] = {
+	{80, 2},
+	{12, 3},
+	{77, 4},
+};
+static arc arcs_31_3[1] = {
+	{77, 4},
+};
+static arc arcs_31_4[3] = {
+	{29, 5},
+	{13, 6},
+	{81, 5},
+};
+static arc arcs_31_5[1] = {
+	{0, 5},
+};
+static arc arcs_31_6[1] = {
+	{81, 7},
+};
+static arc arcs_31_7[1] = {
+	{15, 5},
+};
+static state states_31[8] = {
+	{1, arcs_31_0},
+	{2, arcs_31_1},
+	{3, arcs_31_2},
+	{1, arcs_31_3},
+	{3, arcs_31_4},
+	{1, arcs_31_5},
+	{1, arcs_31_6},
+	{1, arcs_31_7},
+};
+static arc arcs_32_0[1] = {
+	{19, 1},
+};
+static arc arcs_32_1[2] = {
+	{83, 2},
+	{0, 1},
+};
+static arc arcs_32_2[1] = {
+	{19, 3},
+};
+static arc arcs_32_3[1] = {
+	{0, 3},
+};
+static state states_32[4] = {
+	{1, arcs_32_0},
+	{2, arcs_32_1},
+	{1, arcs_32_2},
+	{1, arcs_32_3},
+};
+static arc arcs_33_0[1] = {
+	{12, 1},
+};
+static arc arcs_33_1[2] = {
+	{83, 2},
+	{0, 1},
+};
+static arc arcs_33_2[1] = {
+	{19, 3},
+};
+static arc arcs_33_3[1] = {
+	{0, 3},
+};
+static state states_33[4] = {
+	{1, arcs_33_0},
+	{2, arcs_33_1},
+	{1, arcs_33_2},
+	{1, arcs_33_3},
+};
+static arc arcs_34_0[1] = {
+	{82, 1},
+};
+static arc arcs_34_1[2] = {
+	{28, 2},
+	{0, 1},
+};
+static arc arcs_34_2[2] = {
+	{82, 1},
+	{0, 2},
+};
+static state states_34[3] = {
+	{1, arcs_34_0},
+	{2, arcs_34_1},
+	{2, arcs_34_2},
+};
+static arc arcs_35_0[1] = {
+	{84, 1},
+};
+static arc arcs_35_1[2] = {
+	{28, 0},
+	{0, 1},
+};
+static state states_35[2] = {
+	{1, arcs_35_0},
+	{2, arcs_35_1},
+};
+static arc arcs_36_0[1] = {
+	{19, 1},
+};
+static arc arcs_36_1[2] = {
+	{80, 0},
+	{0, 1},
+};
+static state states_36[2] = {
+	{1, arcs_36_0},
+	{2, arcs_36_1},
+};
+static arc arcs_37_0[1] = {
+	{85, 1},
+};
+static arc arcs_37_1[1] = {
+	{19, 2},
+};
+static arc arcs_37_2[2] = {
+	{28, 1},
+	{0, 2},
+};
+static state states_37[3] = {
+	{1, arcs_37_0},
+	{1, arcs_37_1},
+	{2, arcs_37_2},
+};
+static arc arcs_38_0[1] = {
+	{86, 1},
+};
+static arc arcs_38_1[1] = {
+	{22, 2},
+};
+static arc arcs_38_2[2] = {
+	{28, 3},
+	{0, 2},
+};
+static arc arcs_38_3[1] = {
+	{22, 4},
+};
+static arc arcs_38_4[1] = {
+	{0, 4},
+};
+static state states_38[5] = {
+	{1, arcs_38_0},
+	{1, arcs_38_1},
+	{2, arcs_38_2},
+	{1, arcs_38_3},
+	{1, arcs_38_4},
+};
+static arc arcs_39_0[7] = {
+	{87, 1},
+	{88, 1},
+	{89, 1},
+	{90, 1},
+	{91, 1},
+	{17, 1},
+	{92, 1},
+};
+static arc arcs_39_1[1] = {
+	{0, 1},
+};
+static state states_39[2] = {
+	{7, arcs_39_0},
+	{1, arcs_39_1},
+};
+static arc arcs_40_0[1] = {
+	{93, 1},
+};
+static arc arcs_40_1[1] = {
+	{22, 2},
+};
+static arc arcs_40_2[1] = {
+	{23, 3},
+};
+static arc arcs_40_3[1] = {
+	{24, 4},
+};
+static arc arcs_40_4[3] = {
+	{94, 1},
+	{95, 5},
+	{0, 4},
+};
+static arc arcs_40_5[1] = {
+	{23, 6},
+};
+static arc arcs_40_6[1] = {
+	{24, 7},
+};
+static arc arcs_40_7[1] = {
+	{0, 7},
+};
+static state states_40[8] = {
 	{1, arcs_40_0},
 	{1, arcs_40_1},
 	{1, arcs_40_2},
+	{1, arcs_40_3},
+	{3, arcs_40_4},
+	{1, arcs_40_5},
+	{1, arcs_40_6},
+	{1, arcs_40_7},
 };
 static arc arcs_41_0[1] = {
-	{99, 1},
+	{96, 1},
 };
-static arc arcs_41_1[2] = {
-	{26, 2},
-	{0, 1},
+static arc arcs_41_1[1] = {
+	{22, 2},
 };
-static arc arcs_41_2[2] = {
-	{27, 3},
-	{0, 2},
+static arc arcs_41_2[1] = {
+	{23, 3},
 };
 static arc arcs_41_3[1] = {
-	{26, 4},
+	{24, 4},
 };
-static arc arcs_41_4[1] = {
+static arc arcs_41_4[2] = {
+	{95, 5},
 	{0, 4},
 };
-static state states_41[5] = {
-	{1, arcs_41_0},
-	{2, arcs_41_1},
-	{2, arcs_41_2},
-	{1, arcs_41_3},
-	{1, arcs_41_4},
+static arc arcs_41_5[1] = {
+	{23, 6},
 };
-static arc arcs_42_0[2] = {
-	{3, 1},
-	{2, 2},
+static arc arcs_41_6[1] = {
+	{24, 7},
+};
+static arc arcs_41_7[1] = {
+	{0, 7},
+};
+static state states_41[8] = {
+	{1, arcs_41_0},
+	{1, arcs_41_1},
+	{1, arcs_41_2},
+	{1, arcs_41_3},
+	{2, arcs_41_4},
+	{1, arcs_41_5},
+	{1, arcs_41_6},
+	{1, arcs_41_7},
+};
+static arc arcs_42_0[1] = {
+	{97, 1},
 };
 static arc arcs_42_1[1] = {
-	{0, 1},
+	{64, 2},
 };
 static arc arcs_42_2[1] = {
-	{100, 3},
+	{98, 3},
 };
 static arc arcs_42_3[1] = {
-	{6, 4},
+	{9, 4},
 };
-static arc arcs_42_4[2] = {
-	{6, 4},
-	{101, 1},
+static arc arcs_42_4[1] = {
+	{23, 5},
 };
-static state states_42[5] = {
-	{2, arcs_42_0},
+static arc arcs_42_5[1] = {
+	{24, 6},
+};
+static arc arcs_42_6[2] = {
+	{95, 7},
+	{0, 6},
+};
+static arc arcs_42_7[1] = {
+	{23, 8},
+};
+static arc arcs_42_8[1] = {
+	{24, 9},
+};
+static arc arcs_42_9[1] = {
+	{0, 9},
+};
+static state states_42[10] = {
+	{1, arcs_42_0},
 	{1, arcs_42_1},
 	{1, arcs_42_2},
 	{1, arcs_42_3},
-	{2, arcs_42_4},
+	{1, arcs_42_4},
+	{1, arcs_42_5},
+	{2, arcs_42_6},
+	{1, arcs_42_7},
+	{1, arcs_42_8},
+	{1, arcs_42_9},
 };
 static arc arcs_43_0[1] = {
-	{103, 1},
+	{99, 1},
 };
-static arc arcs_43_1[2] = {
-	{27, 2},
-	{0, 1},
+static arc arcs_43_1[1] = {
+	{23, 2},
 };
 static arc arcs_43_2[1] = {
-	{103, 3},
+	{24, 3},
 };
 static arc arcs_43_3[2] = {
-	{27, 4},
-	{0, 3},
+	{100, 4},
+	{101, 5},
 };
-static arc arcs_43_4[2] = {
-	{103, 3},
-	{0, 4},
+static arc arcs_43_4[1] = {
+	{23, 6},
 };
-static state states_43[5] = {
+static arc arcs_43_5[1] = {
+	{23, 7},
+};
+static arc arcs_43_6[1] = {
+	{24, 8},
+};
+static arc arcs_43_7[1] = {
+	{24, 9},
+};
+static arc arcs_43_8[4] = {
+	{100, 4},
+	{95, 10},
+	{101, 5},
+	{0, 8},
+};
+static arc arcs_43_9[1] = {
+	{0, 9},
+};
+static arc arcs_43_10[1] = {
+	{23, 11},
+};
+static arc arcs_43_11[1] = {
+	{24, 12},
+};
+static arc arcs_43_12[2] = {
+	{101, 5},
+	{0, 12},
+};
+static state states_43[13] = {
 	{1, arcs_43_0},
-	{2, arcs_43_1},
+	{1, arcs_43_1},
 	{1, arcs_43_2},
 	{2, arcs_43_3},
-	{2, arcs_43_4},
+	{1, arcs_43_4},
+	{1, arcs_43_5},
+	{1, arcs_43_6},
+	{1, arcs_43_7},
+	{4, arcs_43_8},
+	{1, arcs_43_9},
+	{1, arcs_43_10},
+	{1, arcs_43_11},
+	{2, arcs_43_12},
 };
-static arc arcs_44_0[2] = {
-	{104, 1},
-	{105, 1},
+static arc arcs_44_0[1] = {
+	{102, 1},
 };
 static arc arcs_44_1[1] = {
-	{0, 1},
+	{22, 2},
 };
-static state states_44[2] = {
-	{2, arcs_44_0},
+static arc arcs_44_2[2] = {
+	{103, 3},
+	{23, 4},
+};
+static arc arcs_44_3[1] = {
+	{23, 4},
+};
+static arc arcs_44_4[1] = {
+	{24, 5},
+};
+static arc arcs_44_5[1] = {
+	{0, 5},
+};
+static state states_44[6] = {
+	{1, arcs_44_0},
 	{1, arcs_44_1},
+	{2, arcs_44_2},
+	{1, arcs_44_3},
+	{1, arcs_44_4},
+	{1, arcs_44_5},
 };
 static arc arcs_45_0[1] = {
-	{106, 1},
+	{83, 1},
 };
-static arc arcs_45_1[2] = {
-	{23, 2},
-	{21, 3},
+static arc arcs_45_1[1] = {
+	{104, 2},
 };
 static arc arcs_45_2[1] = {
-	{21, 3},
+	{0, 2},
 };
-static arc arcs_45_3[1] = {
-	{103, 4},
-};
-static arc arcs_45_4[1] = {
-	{0, 4},
-};
-static state states_45[5] = {
+static state states_45[3] = {
 	{1, arcs_45_0},
-	{2, arcs_45_1},
+	{1, arcs_45_1},
 	{1, arcs_45_2},
-	{1, arcs_45_3},
-	{1, arcs_45_4},
 };
-static arc arcs_46_0[2] = {
-	{104, 1},
-	{107, 2},
+static arc arcs_46_0[1] = {
+	{105, 1},
 };
 static arc arcs_46_1[2] = {
-	{87, 3},
+	{22, 2},
 	{0, 1},
 };
-static arc arcs_46_2[1] = {
+static arc arcs_46_2[2] = {
+	{28, 3},
 	{0, 2},
 };
 static arc arcs_46_3[1] = {
-	{104, 4},
+	{22, 4},
 };
 static arc arcs_46_4[1] = {
-	{89, 5},
+	{0, 4},
 };
-static arc arcs_46_5[1] = {
-	{26, 2},
-};
-static state states_46[6] = {
-	{2, arcs_46_0},
+static state states_46[5] = {
+	{1, arcs_46_0},
 	{2, arcs_46_1},
-	{1, arcs_46_2},
+	{2, arcs_46_2},
 	{1, arcs_46_3},
 	{1, arcs_46_4},
-	{1, arcs_46_5},
 };
-static arc arcs_47_0[1] = {
-	{108, 1},
+static arc arcs_47_0[2] = {
+	{3, 1},
+	{2, 2},
 };
-static arc arcs_47_1[2] = {
-	{109, 0},
+static arc arcs_47_1[1] = {
 	{0, 1},
 };
-static state states_47[2] = {
-	{1, arcs_47_0},
-	{2, arcs_47_1},
+static arc arcs_47_2[1] = {
+	{106, 3},
+};
+static arc arcs_47_3[1] = {
+	{6, 4},
+};
+static arc arcs_47_4[2] = {
+	{6, 4},
+	{107, 1},
+};
+static state states_47[5] = {
+	{2, arcs_47_0},
+	{1, arcs_47_1},
+	{1, arcs_47_2},
+	{1, arcs_47_3},
+	{2, arcs_47_4},
 };
 static arc arcs_48_0[1] = {
-	{110, 1},
+	{109, 1},
 };
 static arc arcs_48_1[2] = {
-	{111, 0},
+	{28, 2},
 	{0, 1},
 };
-static state states_48[2] = {
+static arc arcs_48_2[1] = {
+	{109, 3},
+};
+static arc arcs_48_3[2] = {
+	{28, 4},
+	{0, 3},
+};
+static arc arcs_48_4[2] = {
+	{109, 3},
+	{0, 4},
+};
+static state states_48[5] = {
 	{1, arcs_48_0},
 	{2, arcs_48_1},
+	{1, arcs_48_2},
+	{2, arcs_48_3},
+	{2, arcs_48_4},
 };
 static arc arcs_49_0[2] = {
-	{112, 1},
-	{113, 2},
+	{110, 1},
+	{111, 1},
 };
 static arc arcs_49_1[1] = {
-	{110, 2},
-};
-static arc arcs_49_2[1] = {
-	{0, 2},
-};
-static state states_49[3] = {
-	{2, arcs_49_0},
-	{1, arcs_49_1},
-	{1, arcs_49_2},
-};
-static arc arcs_50_0[1] = {
-	{98, 1},
-};
-static arc arcs_50_1[2] = {
-	{114, 0},
 	{0, 1},
 };
-static state states_50[2] = {
+static state states_49[2] = {
+	{2, arcs_49_0},
+	{1, arcs_49_1},
+};
+static arc arcs_50_0[1] = {
+	{112, 1},
+};
+static arc arcs_50_1[2] = {
+	{33, 2},
+	{23, 3},
+};
+static arc arcs_50_2[1] = {
+	{23, 3},
+};
+static arc arcs_50_3[1] = {
+	{109, 4},
+};
+static arc arcs_50_4[1] = {
+	{0, 4},
+};
+static state states_50[5] = {
 	{1, arcs_50_0},
 	{2, arcs_50_1},
+	{1, arcs_50_2},
+	{1, arcs_50_3},
+	{1, arcs_50_4},
 };
-static arc arcs_51_0[9] = {
-	{115, 1},
-	{116, 1},
-	{117, 1},
-	{118, 1},
-	{119, 1},
-	{120, 1},
-	{92, 1},
-	{112, 2},
-	{121, 3},
+static arc arcs_51_0[2] = {
+	{110, 1},
+	{113, 2},
 };
-static arc arcs_51_1[1] = {
+static arc arcs_51_1[2] = {
+	{93, 3},
 	{0, 1},
 };
 static arc arcs_51_2[1] = {
-	{92, 1},
+	{0, 2},
 };
-static arc arcs_51_3[2] = {
-	{112, 1},
-	{0, 3},
+static arc arcs_51_3[1] = {
+	{110, 4},
 };
-static state states_51[4] = {
-	{9, arcs_51_0},
-	{1, arcs_51_1},
+static arc arcs_51_4[1] = {
+	{95, 5},
+};
+static arc arcs_51_5[1] = {
+	{22, 2},
+};
+static state states_51[6] = {
+	{2, arcs_51_0},
+	{2, arcs_51_1},
 	{1, arcs_51_2},
-	{2, arcs_51_3},
+	{1, arcs_51_3},
+	{1, arcs_51_4},
+	{1, arcs_51_5},
 };
 static arc arcs_52_0[1] = {
-	{122, 1},
+	{114, 1},
 };
 static arc arcs_52_1[2] = {
-	{123, 0},
+	{115, 0},
 	{0, 1},
 };
 static state states_52[2] = {
@@ -1126,856 +1188,947 @@
 	{2, arcs_52_1},
 };
 static arc arcs_53_0[1] = {
-	{124, 1},
+	{116, 1},
 };
 static arc arcs_53_1[2] = {
-	{125, 0},
+	{117, 0},
 	{0, 1},
 };
 static state states_53[2] = {
 	{1, arcs_53_0},
 	{2, arcs_53_1},
 };
-static arc arcs_54_0[1] = {
-	{126, 1},
+static arc arcs_54_0[2] = {
+	{118, 1},
+	{119, 2},
 };
-static arc arcs_54_1[2] = {
-	{127, 0},
-	{0, 1},
+static arc arcs_54_1[1] = {
+	{116, 2},
 };
-static state states_54[2] = {
-	{1, arcs_54_0},
-	{2, arcs_54_1},
+static arc arcs_54_2[1] = {
+	{0, 2},
+};
+static state states_54[3] = {
+	{2, arcs_54_0},
+	{1, arcs_54_1},
+	{1, arcs_54_2},
 };
 static arc arcs_55_0[1] = {
-	{128, 1},
+	{104, 1},
 };
-static arc arcs_55_1[3] = {
-	{129, 0},
-	{56, 0},
+static arc arcs_55_1[2] = {
+	{120, 0},
 	{0, 1},
 };
 static state states_55[2] = {
 	{1, arcs_55_0},
-	{3, arcs_55_1},
+	{2, arcs_55_1},
 };
-static arc arcs_56_0[1] = {
-	{130, 1},
+static arc arcs_56_0[9] = {
+	{121, 1},
+	{122, 1},
+	{123, 1},
+	{124, 1},
+	{125, 1},
+	{126, 1},
+	{98, 1},
+	{118, 2},
+	{127, 3},
 };
-static arc arcs_56_1[3] = {
-	{131, 0},
-	{132, 0},
+static arc arcs_56_1[1] = {
 	{0, 1},
 };
-static state states_56[2] = {
-	{1, arcs_56_0},
-	{3, arcs_56_1},
+static arc arcs_56_2[1] = {
+	{98, 1},
+};
+static arc arcs_56_3[2] = {
+	{118, 1},
+	{0, 3},
+};
+static state states_56[4] = {
+	{9, arcs_56_0},
+	{1, arcs_56_1},
+	{1, arcs_56_2},
+	{2, arcs_56_3},
 };
 static arc arcs_57_0[1] = {
-	{133, 1},
+	{128, 1},
 };
-static arc arcs_57_1[5] = {
-	{28, 0},
-	{134, 0},
-	{135, 0},
-	{136, 0},
+static arc arcs_57_1[2] = {
+	{129, 0},
 	{0, 1},
 };
 static state states_57[2] = {
 	{1, arcs_57_0},
-	{5, arcs_57_1},
+	{2, arcs_57_1},
 };
-static arc arcs_58_0[4] = {
-	{131, 1},
-	{132, 1},
-	{137, 1},
-	{138, 2},
+static arc arcs_58_0[1] = {
+	{130, 1},
 };
-static arc arcs_58_1[1] = {
-	{133, 2},
+static arc arcs_58_1[2] = {
+	{131, 0},
+	{0, 1},
 };
-static arc arcs_58_2[1] = {
-	{0, 2},
-};
-static state states_58[3] = {
-	{4, arcs_58_0},
-	{1, arcs_58_1},
-	{1, arcs_58_2},
+static state states_58[2] = {
+	{1, arcs_58_0},
+	{2, arcs_58_1},
 };
 static arc arcs_59_0[1] = {
-	{139, 1},
+	{132, 1},
 };
-static arc arcs_59_1[3] = {
-	{140, 1},
-	{29, 2},
+static arc arcs_59_1[2] = {
+	{133, 0},
 	{0, 1},
 };
-static arc arcs_59_2[1] = {
-	{133, 3},
-};
-static arc arcs_59_3[1] = {
-	{0, 3},
-};
-static state states_59[4] = {
+static state states_59[2] = {
 	{1, arcs_59_0},
-	{3, arcs_59_1},
-	{1, arcs_59_2},
-	{1, arcs_59_3},
+	{2, arcs_59_1},
 };
-static arc arcs_60_0[7] = {
-	{13, 1},
-	{142, 2},
-	{145, 3},
-	{19, 4},
-	{148, 4},
-	{149, 5},
-	{74, 6},
+static arc arcs_60_0[1] = {
+	{134, 1},
 };
 static arc arcs_60_1[3] = {
-	{42, 7},
-	{141, 7},
-	{15, 4},
+	{135, 0},
+	{62, 0},
+	{0, 1},
 };
-static arc arcs_60_2[2] = {
-	{143, 8},
-	{144, 4},
-};
-static arc arcs_60_3[2] = {
-	{146, 9},
-	{147, 4},
-};
-static arc arcs_60_4[1] = {
-	{0, 4},
-};
-static arc arcs_60_5[2] = {
-	{149, 5},
-	{0, 5},
-};
-static arc arcs_60_6[1] = {
-	{74, 10},
-};
-static arc arcs_60_7[1] = {
-	{15, 4},
-};
-static arc arcs_60_8[1] = {
-	{144, 4},
-};
-static arc arcs_60_9[1] = {
-	{147, 4},
-};
-static arc arcs_60_10[1] = {
-	{74, 4},
-};
-static state states_60[11] = {
-	{7, arcs_60_0},
+static state states_60[2] = {
+	{1, arcs_60_0},
 	{3, arcs_60_1},
-	{2, arcs_60_2},
-	{2, arcs_60_3},
-	{1, arcs_60_4},
-	{2, arcs_60_5},
-	{1, arcs_60_6},
-	{1, arcs_60_7},
-	{1, arcs_60_8},
-	{1, arcs_60_9},
-	{1, arcs_60_10},
 };
 static arc arcs_61_0[1] = {
-	{26, 1},
+	{136, 1},
 };
 static arc arcs_61_1[3] = {
-	{150, 2},
-	{27, 3},
+	{137, 0},
+	{138, 0},
 	{0, 1},
 };
-static arc arcs_61_2[1] = {
-	{0, 2},
-};
-static arc arcs_61_3[2] = {
-	{26, 4},
-	{0, 3},
-};
-static arc arcs_61_4[2] = {
-	{27, 3},
-	{0, 4},
-};
-static state states_61[5] = {
+static state states_61[2] = {
 	{1, arcs_61_0},
 	{3, arcs_61_1},
-	{1, arcs_61_2},
-	{2, arcs_61_3},
-	{2, arcs_61_4},
 };
 static arc arcs_62_0[1] = {
-	{26, 1},
+	{139, 1},
 };
-static arc arcs_62_1[3] = {
-	{151, 2},
-	{27, 3},
+static arc arcs_62_1[5] = {
+	{29, 0},
+	{140, 0},
+	{141, 0},
+	{142, 0},
 	{0, 1},
 };
-static arc arcs_62_2[1] = {
-	{0, 2},
-};
-static arc arcs_62_3[2] = {
-	{26, 4},
-	{0, 3},
-};
-static arc arcs_62_4[2] = {
-	{27, 3},
-	{0, 4},
-};
-static state states_62[5] = {
+static state states_62[2] = {
 	{1, arcs_62_0},
-	{3, arcs_62_1},
-	{1, arcs_62_2},
-	{2, arcs_62_3},
-	{2, arcs_62_4},
+	{5, arcs_62_1},
 };
-static arc arcs_63_0[1] = {
-	{106, 1},
+static arc arcs_63_0[4] = {
+	{137, 1},
+	{138, 1},
+	{143, 1},
+	{144, 2},
 };
-static arc arcs_63_1[2] = {
-	{23, 2},
-	{21, 3},
+static arc arcs_63_1[1] = {
+	{139, 2},
 };
 static arc arcs_63_2[1] = {
-	{21, 3},
-};
-static arc arcs_63_3[1] = {
-	{26, 4},
-};
-static arc arcs_63_4[1] = {
-	{0, 4},
-};
-static state states_63[5] = {
-	{1, arcs_63_0},
-	{2, arcs_63_1},
-	{1, arcs_63_2},
-	{1, arcs_63_3},
-	{1, arcs_63_4},
-};
-static arc arcs_64_0[3] = {
-	{13, 1},
-	{142, 2},
-	{74, 3},
-};
-static arc arcs_64_1[2] = {
-	{14, 4},
-	{15, 5},
-};
-static arc arcs_64_2[1] = {
-	{152, 6},
-};
-static arc arcs_64_3[1] = {
-	{19, 5},
-};
-static arc arcs_64_4[1] = {
-	{15, 5},
-};
-static arc arcs_64_5[1] = {
-	{0, 5},
-};
-static arc arcs_64_6[1] = {
-	{144, 5},
-};
-static state states_64[7] = {
-	{3, arcs_64_0},
-	{2, arcs_64_1},
-	{1, arcs_64_2},
-	{1, arcs_64_3},
-	{1, arcs_64_4},
-	{1, arcs_64_5},
-	{1, arcs_64_6},
-};
-static arc arcs_65_0[1] = {
-	{153, 1},
-};
-static arc arcs_65_1[2] = {
-	{27, 2},
-	{0, 1},
-};
-static arc arcs_65_2[2] = {
-	{153, 1},
 	{0, 2},
 };
-static state states_65[3] = {
-	{1, arcs_65_0},
-	{2, arcs_65_1},
-	{2, arcs_65_2},
+static state states_63[3] = {
+	{4, arcs_63_0},
+	{1, arcs_63_1},
+	{1, arcs_63_2},
 };
-static arc arcs_66_0[2] = {
-	{26, 1},
-	{21, 2},
+static arc arcs_64_0[1] = {
+	{145, 1},
 };
-static arc arcs_66_1[2] = {
-	{21, 2},
+static arc arcs_64_1[3] = {
+	{146, 1},
+	{31, 2},
 	{0, 1},
 };
-static arc arcs_66_2[3] = {
-	{26, 3},
+static arc arcs_64_2[1] = {
+	{139, 3},
+};
+static arc arcs_64_3[1] = {
+	{0, 3},
+};
+static state states_64[4] = {
+	{1, arcs_64_0},
+	{3, arcs_64_1},
+	{1, arcs_64_2},
+	{1, arcs_64_3},
+};
+static arc arcs_65_0[7] = {
+	{13, 1},
+	{148, 2},
+	{151, 3},
+	{19, 4},
 	{154, 4},
+	{155, 5},
+	{80, 6},
+};
+static arc arcs_65_1[3] = {
+	{48, 7},
+	{147, 7},
+	{15, 4},
+};
+static arc arcs_65_2[2] = {
+	{149, 8},
+	{150, 4},
+};
+static arc arcs_65_3[2] = {
+	{152, 9},
+	{153, 4},
+};
+static arc arcs_65_4[1] = {
+	{0, 4},
+};
+static arc arcs_65_5[2] = {
+	{155, 5},
+	{0, 5},
+};
+static arc arcs_65_6[1] = {
+	{80, 10},
+};
+static arc arcs_65_7[1] = {
+	{15, 4},
+};
+static arc arcs_65_8[1] = {
+	{150, 4},
+};
+static arc arcs_65_9[1] = {
+	{153, 4},
+};
+static arc arcs_65_10[1] = {
+	{80, 4},
+};
+static state states_65[11] = {
+	{7, arcs_65_0},
+	{3, arcs_65_1},
+	{2, arcs_65_2},
+	{2, arcs_65_3},
+	{1, arcs_65_4},
+	{2, arcs_65_5},
+	{1, arcs_65_6},
+	{1, arcs_65_7},
+	{1, arcs_65_8},
+	{1, arcs_65_9},
+	{1, arcs_65_10},
+};
+static arc arcs_66_0[1] = {
+	{22, 1},
+};
+static arc arcs_66_1[3] = {
+	{156, 2},
+	{28, 3},
+	{0, 1},
+};
+static arc arcs_66_2[1] = {
 	{0, 2},
 };
 static arc arcs_66_3[2] = {
-	{154, 4},
+	{22, 4},
 	{0, 3},
 };
-static arc arcs_66_4[1] = {
+static arc arcs_66_4[2] = {
+	{28, 3},
 	{0, 4},
 };
 static state states_66[5] = {
-	{2, arcs_66_0},
-	{2, arcs_66_1},
-	{3, arcs_66_2},
+	{1, arcs_66_0},
+	{3, arcs_66_1},
+	{1, arcs_66_2},
 	{2, arcs_66_3},
-	{1, arcs_66_4},
+	{2, arcs_66_4},
 };
 static arc arcs_67_0[1] = {
-	{21, 1},
+	{22, 1},
 };
-static arc arcs_67_1[2] = {
-	{26, 2},
+static arc arcs_67_1[3] = {
+	{157, 2},
+	{28, 3},
 	{0, 1},
 };
 static arc arcs_67_2[1] = {
 	{0, 2},
 };
-static state states_67[3] = {
-	{1, arcs_67_0},
-	{2, arcs_67_1},
-	{1, arcs_67_2},
-};
-static arc arcs_68_0[1] = {
-	{98, 1},
-};
-static arc arcs_68_1[2] = {
-	{27, 2},
-	{0, 1},
-};
-static arc arcs_68_2[2] = {
-	{98, 1},
-	{0, 2},
-};
-static state states_68[3] = {
-	{1, arcs_68_0},
-	{2, arcs_68_1},
-	{2, arcs_68_2},
-};
-static arc arcs_69_0[1] = {
-	{26, 1},
-};
-static arc arcs_69_1[2] = {
-	{27, 2},
-	{0, 1},
-};
-static arc arcs_69_2[2] = {
-	{26, 1},
-	{0, 2},
-};
-static state states_69[3] = {
-	{1, arcs_69_0},
-	{2, arcs_69_1},
-	{2, arcs_69_2},
-};
-static arc arcs_70_0[1] = {
-	{26, 1},
-};
-static arc arcs_70_1[3] = {
-	{21, 2},
-	{27, 3},
-	{0, 1},
-};
-static arc arcs_70_2[1] = {
-	{26, 4},
-};
-static arc arcs_70_3[2] = {
-	{26, 5},
+static arc arcs_67_3[2] = {
+	{22, 4},
 	{0, 3},
 };
-static arc arcs_70_4[2] = {
-	{27, 6},
+static arc arcs_67_4[2] = {
+	{28, 3},
 	{0, 4},
 };
-static arc arcs_70_5[2] = {
-	{27, 3},
+static state states_67[5] = {
+	{1, arcs_67_0},
+	{3, arcs_67_1},
+	{1, arcs_67_2},
+	{2, arcs_67_3},
+	{2, arcs_67_4},
+};
+static arc arcs_68_0[1] = {
+	{112, 1},
+};
+static arc arcs_68_1[2] = {
+	{33, 2},
+	{23, 3},
+};
+static arc arcs_68_2[1] = {
+	{23, 3},
+};
+static arc arcs_68_3[1] = {
+	{22, 4},
+};
+static arc arcs_68_4[1] = {
+	{0, 4},
+};
+static state states_68[5] = {
+	{1, arcs_68_0},
+	{2, arcs_68_1},
+	{1, arcs_68_2},
+	{1, arcs_68_3},
+	{1, arcs_68_4},
+};
+static arc arcs_69_0[3] = {
+	{13, 1},
+	{148, 2},
+	{80, 3},
+};
+static arc arcs_69_1[2] = {
+	{14, 4},
+	{15, 5},
+};
+static arc arcs_69_2[1] = {
+	{158, 6},
+};
+static arc arcs_69_3[1] = {
+	{19, 5},
+};
+static arc arcs_69_4[1] = {
+	{15, 5},
+};
+static arc arcs_69_5[1] = {
 	{0, 5},
 };
-static arc arcs_70_6[2] = {
-	{26, 7},
-	{0, 6},
+static arc arcs_69_6[1] = {
+	{150, 5},
 };
-static arc arcs_70_7[1] = {
-	{21, 2},
+static state states_69[7] = {
+	{3, arcs_69_0},
+	{2, arcs_69_1},
+	{1, arcs_69_2},
+	{1, arcs_69_3},
+	{1, arcs_69_4},
+	{1, arcs_69_5},
+	{1, arcs_69_6},
 };
-static state states_70[8] = {
+static arc arcs_70_0[1] = {
+	{159, 1},
+};
+static arc arcs_70_1[2] = {
+	{28, 2},
+	{0, 1},
+};
+static arc arcs_70_2[2] = {
+	{159, 1},
+	{0, 2},
+};
+static state states_70[3] = {
 	{1, arcs_70_0},
-	{3, arcs_70_1},
-	{1, arcs_70_2},
-	{2, arcs_70_3},
-	{2, arcs_70_4},
-	{2, arcs_70_5},
-	{2, arcs_70_6},
-	{1, arcs_70_7},
+	{2, arcs_70_1},
+	{2, arcs_70_2},
 };
-static arc arcs_71_0[1] = {
-	{155, 1},
+static arc arcs_71_0[2] = {
+	{22, 1},
+	{23, 2},
 };
-static arc arcs_71_1[1] = {
-	{19, 2},
+static arc arcs_71_1[2] = {
+	{23, 2},
+	{0, 1},
 };
-static arc arcs_71_2[2] = {
-	{13, 3},
-	{21, 4},
+static arc arcs_71_2[3] = {
+	{22, 3},
+	{160, 4},
+	{0, 2},
 };
 static arc arcs_71_3[2] = {
-	{9, 5},
-	{15, 6},
+	{160, 4},
+	{0, 3},
 };
 static arc arcs_71_4[1] = {
-	{22, 7},
+	{0, 4},
 };
-static arc arcs_71_5[1] = {
-	{15, 6},
-};
-static arc arcs_71_6[1] = {
-	{21, 4},
-};
-static arc arcs_71_7[1] = {
-	{0, 7},
-};
-static state states_71[8] = {
-	{1, arcs_71_0},
-	{1, arcs_71_1},
-	{2, arcs_71_2},
+static state states_71[5] = {
+	{2, arcs_71_0},
+	{2, arcs_71_1},
+	{3, arcs_71_2},
 	{2, arcs_71_3},
 	{1, arcs_71_4},
-	{1, arcs_71_5},
-	{1, arcs_71_6},
-	{1, arcs_71_7},
 };
-static arc arcs_72_0[3] = {
-	{156, 1},
-	{28, 2},
-	{29, 3},
+static arc arcs_72_0[1] = {
+	{23, 1},
 };
 static arc arcs_72_1[2] = {
-	{27, 4},
+	{22, 2},
 	{0, 1},
 };
 static arc arcs_72_2[1] = {
-	{26, 5},
+	{0, 2},
 };
-static arc arcs_72_3[1] = {
-	{26, 6},
-};
-static arc arcs_72_4[4] = {
-	{156, 1},
-	{28, 2},
-	{29, 3},
-	{0, 4},
-};
-static arc arcs_72_5[2] = {
-	{27, 7},
-	{0, 5},
-};
-static arc arcs_72_6[1] = {
-	{0, 6},
-};
-static arc arcs_72_7[1] = {
-	{29, 3},
-};
-static state states_72[8] = {
-	{3, arcs_72_0},
+static state states_72[3] = {
+	{1, arcs_72_0},
 	{2, arcs_72_1},
 	{1, arcs_72_2},
-	{1, arcs_72_3},
-	{4, arcs_72_4},
-	{2, arcs_72_5},
-	{1, arcs_72_6},
-	{1, arcs_72_7},
 };
 static arc arcs_73_0[1] = {
-	{26, 1},
+	{104, 1},
 };
-static arc arcs_73_1[3] = {
-	{151, 2},
-	{25, 3},
+static arc arcs_73_1[2] = {
+	{28, 2},
 	{0, 1},
 };
-static arc arcs_73_2[1] = {
+static arc arcs_73_2[2] = {
+	{104, 1},
 	{0, 2},
 };
-static arc arcs_73_3[1] = {
-	{26, 2},
-};
-static state states_73[4] = {
+static state states_73[3] = {
 	{1, arcs_73_0},
-	{3, arcs_73_1},
-	{1, arcs_73_2},
-	{1, arcs_73_3},
+	{2, arcs_73_1},
+	{2, arcs_73_2},
 };
-static arc arcs_74_0[2] = {
-	{150, 1},
-	{158, 1},
+static arc arcs_74_0[1] = {
+	{22, 1},
 };
-static arc arcs_74_1[1] = {
+static arc arcs_74_1[2] = {
+	{28, 2},
 	{0, 1},
 };
-static state states_74[2] = {
-	{2, arcs_74_0},
-	{1, arcs_74_1},
+static arc arcs_74_2[2] = {
+	{22, 1},
+	{0, 2},
+};
+static state states_74[3] = {
+	{1, arcs_74_0},
+	{2, arcs_74_1},
+	{2, arcs_74_2},
 };
 static arc arcs_75_0[1] = {
-	{91, 1},
+	{22, 1},
 };
-static arc arcs_75_1[1] = {
-	{58, 2},
+static arc arcs_75_1[3] = {
+	{23, 2},
+	{28, 3},
+	{0, 1},
 };
 static arc arcs_75_2[1] = {
-	{92, 3},
+	{22, 4},
 };
-static arc arcs_75_3[1] = {
-	{102, 4},
-};
-static arc arcs_75_4[2] = {
-	{157, 5},
-	{0, 4},
-};
-static arc arcs_75_5[1] = {
-	{0, 5},
-};
-static state states_75[6] = {
-	{1, arcs_75_0},
-	{1, arcs_75_1},
-	{1, arcs_75_2},
-	{1, arcs_75_3},
-	{2, arcs_75_4},
-	{1, arcs_75_5},
-};
-static arc arcs_76_0[1] = {
-	{87, 1},
-};
-static arc arcs_76_1[1] = {
-	{103, 2},
-};
-static arc arcs_76_2[2] = {
-	{157, 3},
-	{0, 2},
-};
-static arc arcs_76_3[1] = {
+static arc arcs_75_3[2] = {
+	{22, 5},
 	{0, 3},
 };
-static state states_76[4] = {
+static arc arcs_75_4[2] = {
+	{28, 6},
+	{0, 4},
+};
+static arc arcs_75_5[2] = {
+	{28, 3},
+	{0, 5},
+};
+static arc arcs_75_6[2] = {
+	{22, 7},
+	{0, 6},
+};
+static arc arcs_75_7[1] = {
+	{23, 2},
+};
+static state states_75[8] = {
+	{1, arcs_75_0},
+	{3, arcs_75_1},
+	{1, arcs_75_2},
+	{2, arcs_75_3},
+	{2, arcs_75_4},
+	{2, arcs_75_5},
+	{2, arcs_75_6},
+	{1, arcs_75_7},
+};
+static arc arcs_76_0[1] = {
+	{161, 1},
+};
+static arc arcs_76_1[1] = {
+	{19, 2},
+};
+static arc arcs_76_2[2] = {
+	{13, 3},
+	{23, 4},
+};
+static arc arcs_76_3[2] = {
+	{9, 5},
+	{15, 6},
+};
+static arc arcs_76_4[1] = {
+	{24, 7},
+};
+static arc arcs_76_5[1] = {
+	{15, 6},
+};
+static arc arcs_76_6[1] = {
+	{23, 4},
+};
+static arc arcs_76_7[1] = {
+	{0, 7},
+};
+static state states_76[8] = {
 	{1, arcs_76_0},
 	{1, arcs_76_1},
 	{2, arcs_76_2},
-	{1, arcs_76_3},
+	{2, arcs_76_3},
+	{1, arcs_76_4},
+	{1, arcs_76_5},
+	{1, arcs_76_6},
+	{1, arcs_76_7},
 };
-static arc arcs_77_0[2] = {
-	{151, 1},
-	{160, 1},
+static arc arcs_77_0[3] = {
+	{162, 1},
+	{29, 2},
+	{31, 3},
 };
-static arc arcs_77_1[1] = {
+static arc arcs_77_1[2] = {
+	{28, 4},
 	{0, 1},
 };
-static state states_77[2] = {
-	{2, arcs_77_0},
-	{1, arcs_77_1},
+static arc arcs_77_2[1] = {
+	{22, 5},
 };
-static arc arcs_78_0[1] = {
-	{91, 1},
+static arc arcs_77_3[1] = {
+	{22, 6},
 };
-static arc arcs_78_1[1] = {
-	{58, 2},
-};
-static arc arcs_78_2[1] = {
-	{92, 3},
-};
-static arc arcs_78_3[1] = {
-	{104, 4},
-};
-static arc arcs_78_4[2] = {
-	{159, 5},
+static arc arcs_77_4[4] = {
+	{162, 1},
+	{29, 2},
+	{31, 3},
 	{0, 4},
 };
-static arc arcs_78_5[1] = {
+static arc arcs_77_5[2] = {
+	{28, 7},
 	{0, 5},
 };
-static state states_78[6] = {
-	{1, arcs_78_0},
-	{1, arcs_78_1},
-	{1, arcs_78_2},
-	{1, arcs_78_3},
-	{2, arcs_78_4},
-	{1, arcs_78_5},
+static arc arcs_77_6[1] = {
+	{0, 6},
 };
-static arc arcs_79_0[1] = {
-	{87, 1},
+static arc arcs_77_7[1] = {
+	{31, 3},
 };
-static arc arcs_79_1[1] = {
-	{103, 2},
+static state states_77[8] = {
+	{3, arcs_77_0},
+	{2, arcs_77_1},
+	{1, arcs_77_2},
+	{1, arcs_77_3},
+	{4, arcs_77_4},
+	{2, arcs_77_5},
+	{1, arcs_77_6},
+	{1, arcs_77_7},
 };
-static arc arcs_79_2[2] = {
-	{159, 3},
+static arc arcs_78_0[1] = {
+	{22, 1},
+};
+static arc arcs_78_1[3] = {
+	{157, 2},
+	{27, 3},
+	{0, 1},
+};
+static arc arcs_78_2[1] = {
 	{0, 2},
 };
-static arc arcs_79_3[1] = {
-	{0, 3},
+static arc arcs_78_3[1] = {
+	{22, 2},
 };
-static state states_79[4] = {
-	{1, arcs_79_0},
+static state states_78[4] = {
+	{1, arcs_78_0},
+	{3, arcs_78_1},
+	{1, arcs_78_2},
+	{1, arcs_78_3},
+};
+static arc arcs_79_0[2] = {
+	{156, 1},
+	{164, 1},
+};
+static arc arcs_79_1[1] = {
+	{0, 1},
+};
+static state states_79[2] = {
+	{2, arcs_79_0},
 	{1, arcs_79_1},
-	{2, arcs_79_2},
-	{1, arcs_79_3},
 };
 static arc arcs_80_0[1] = {
-	{26, 1},
+	{97, 1},
 };
-static arc arcs_80_1[2] = {
-	{27, 0},
-	{0, 1},
+static arc arcs_80_1[1] = {
+	{64, 2},
 };
-static state states_80[2] = {
+static arc arcs_80_2[1] = {
+	{98, 3},
+};
+static arc arcs_80_3[1] = {
+	{108, 4},
+};
+static arc arcs_80_4[2] = {
+	{163, 5},
+	{0, 4},
+};
+static arc arcs_80_5[1] = {
+	{0, 5},
+};
+static state states_80[6] = {
 	{1, arcs_80_0},
-	{2, arcs_80_1},
+	{1, arcs_80_1},
+	{1, arcs_80_2},
+	{1, arcs_80_3},
+	{2, arcs_80_4},
+	{1, arcs_80_5},
 };
 static arc arcs_81_0[1] = {
-	{19, 1},
+	{93, 1},
 };
 static arc arcs_81_1[1] = {
-	{0, 1},
+	{109, 2},
 };
-static state states_81[2] = {
+static arc arcs_81_2[2] = {
+	{163, 3},
+	{0, 2},
+};
+static arc arcs_81_3[1] = {
+	{0, 3},
+};
+static state states_81[4] = {
 	{1, arcs_81_0},
 	{1, arcs_81_1},
+	{2, arcs_81_2},
+	{1, arcs_81_3},
 };
-static arc arcs_82_0[1] = {
-	{163, 1},
+static arc arcs_82_0[2] = {
+	{157, 1},
+	{166, 1},
 };
-static arc arcs_82_1[2] = {
+static arc arcs_82_1[1] = {
+	{0, 1},
+};
+static state states_82[2] = {
+	{2, arcs_82_0},
+	{1, arcs_82_1},
+};
+static arc arcs_83_0[1] = {
+	{97, 1},
+};
+static arc arcs_83_1[1] = {
+	{64, 2},
+};
+static arc arcs_83_2[1] = {
+	{98, 3},
+};
+static arc arcs_83_3[1] = {
+	{110, 4},
+};
+static arc arcs_83_4[2] = {
+	{165, 5},
+	{0, 4},
+};
+static arc arcs_83_5[1] = {
+	{0, 5},
+};
+static state states_83[6] = {
+	{1, arcs_83_0},
+	{1, arcs_83_1},
+	{1, arcs_83_2},
+	{1, arcs_83_3},
+	{2, arcs_83_4},
+	{1, arcs_83_5},
+};
+static arc arcs_84_0[1] = {
+	{93, 1},
+};
+static arc arcs_84_1[1] = {
+	{109, 2},
+};
+static arc arcs_84_2[2] = {
+	{165, 3},
+	{0, 2},
+};
+static arc arcs_84_3[1] = {
+	{0, 3},
+};
+static state states_84[4] = {
+	{1, arcs_84_0},
+	{1, arcs_84_1},
+	{2, arcs_84_2},
+	{1, arcs_84_3},
+};
+static arc arcs_85_0[1] = {
+	{22, 1},
+};
+static arc arcs_85_1[2] = {
+	{28, 0},
+	{0, 1},
+};
+static state states_85[2] = {
+	{1, arcs_85_0},
+	{2, arcs_85_1},
+};
+static arc arcs_86_0[1] = {
+	{19, 1},
+};
+static arc arcs_86_1[1] = {
+	{0, 1},
+};
+static state states_86[2] = {
+	{1, arcs_86_0},
+	{1, arcs_86_1},
+};
+static arc arcs_87_0[1] = {
+	{169, 1},
+};
+static arc arcs_87_1[2] = {
 	{9, 2},
 	{0, 1},
 };
-static arc arcs_82_2[1] = {
+static arc arcs_87_2[1] = {
 	{0, 2},
 };
-static state states_82[3] = {
-	{1, arcs_82_0},
-	{2, arcs_82_1},
-	{1, arcs_82_2},
+static state states_87[3] = {
+	{1, arcs_87_0},
+	{2, arcs_87_1},
+	{1, arcs_87_2},
 };
-static dfa dfas[83] = {
+static dfa dfas[88] = {
 	{256, "single_input", 0, 3, states_0,
-	 "\004\050\014\000\000\000\200\012\236\206\201\054\001\004\001\000\030\102\062\010\010"},
+	 "\004\050\014\000\000\000\000\240\202\247\141\040\113\000\101\000\000\206\220\014\002\002"},
 	{257, "file_input", 0, 2, states_1,
-	 "\204\050\014\000\000\000\200\012\236\206\201\054\001\004\001\000\030\102\062\010\010"},
+	 "\204\050\014\000\000\000\000\240\202\247\141\040\113\000\101\000\000\206\220\014\002\002"},
 	{258, "eval_input", 0, 3, states_2,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
 	{259, "decorator", 0, 7, states_3,
-	 "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	 "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{260, "decorators", 0, 2, states_4,
-	 "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{261, "funcdef", 0, 7, states_5,
-	 "\000\010\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	 "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{261, "funcdef", 0, 9, states_5,
+	 "\000\010\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{262, "parameters", 0, 4, states_6,
-	 "\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{263, "varargslist", 0, 12, states_7,
-	 "\000\040\010\060\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{264, "fpdef", 0, 4, states_8,
-	 "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{265, "fplist", 0, 3, states_9,
-	 "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{266, "stmt", 0, 2, states_10,
-	 "\000\050\014\000\000\000\200\012\236\206\201\054\001\004\001\000\030\102\062\010\010"},
-	{267, "simple_stmt", 0, 4, states_11,
-	 "\000\040\010\000\000\000\200\012\236\206\001\000\000\004\001\000\030\102\062\000\010"},
-	{268, "small_stmt", 0, 2, states_12,
-	 "\000\040\010\000\000\000\200\012\236\206\001\000\000\004\001\000\030\102\062\000\010"},
-	{269, "expr_stmt", 0, 6, states_13,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{270, "augassign", 0, 2, states_14,
-	 "\000\000\000\000\000\370\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{271, "print_stmt", 0, 9, states_15,
-	 "\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{272, "del_stmt", 0, 3, states_16,
-	 "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{273, "pass_stmt", 0, 2, states_17,
-	 "\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{274, "flow_stmt", 0, 2, states_18,
-	 "\000\000\000\000\000\000\000\000\036\000\000\000\000\000\000\000\000\000\000\000\010"},
-	{275, "break_stmt", 0, 2, states_19,
-	 "\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{276, "continue_stmt", 0, 2, states_20,
-	 "\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{277, "return_stmt", 0, 3, states_21,
-	 "\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{278, "yield_stmt", 0, 2, states_22,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010"},
-	{279, "raise_stmt", 0, 7, states_23,
-	 "\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{280, "import_stmt", 0, 2, states_24,
-	 "\000\000\000\000\000\000\000\000\200\002\000\000\000\000\000\000\000\000\000\000\000"},
-	{281, "import_name", 0, 3, states_25,
-	 "\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{282, "import_from", 0, 8, states_26,
-	 "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000"},
-	{283, "import_as_name", 0, 4, states_27,
-	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{284, "dotted_as_name", 0, 4, states_28,
-	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{285, "import_as_names", 0, 3, states_29,
-	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{286, "dotted_as_names", 0, 2, states_30,
-	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{287, "dotted_name", 0, 2, states_31,
-	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{288, "global_stmt", 0, 3, states_32,
-	 "\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000"},
-	{289, "assert_stmt", 0, 5, states_33,
-	 "\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000"},
-	{290, "compound_stmt", 0, 2, states_34,
-	 "\000\010\004\000\000\000\000\000\000\000\200\054\001\000\000\000\000\000\000\010\000"},
-	{291, "if_stmt", 0, 8, states_35,
-	 "\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"},
-	{292, "while_stmt", 0, 8, states_36,
-	 "\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000"},
-	{293, "for_stmt", 0, 10, states_37,
-	 "\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
-	{294, "try_stmt", 0, 13, states_38,
-	 "\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000"},
-	{295, "with_stmt", 0, 6, states_39,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000"},
-	{296, "with_var", 0, 3, states_40,
-	 "\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"},
-	{297, "except_clause", 0, 5, states_41,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000"},
-	{298, "suite", 0, 5, states_42,
-	 "\004\040\010\000\000\000\200\012\236\206\001\000\000\004\001\000\030\102\062\000\010"},
-	{299, "testlist_safe", 0, 5, states_43,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{300, "old_test", 0, 2, states_44,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{301, "old_lambdef", 0, 5, states_45,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000"},
-	{302, "test", 0, 6, states_46,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{303, "or_test", 0, 2, states_47,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\001\000\030\102\062\000\000"},
-	{304, "and_test", 0, 2, states_48,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\001\000\030\102\062\000\000"},
-	{305, "not_test", 0, 3, states_49,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\001\000\030\102\062\000\000"},
-	{306, "comparison", 0, 2, states_50,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{307, "comp_op", 0, 4, states_51,
-	 "\000\000\000\000\000\000\000\000\000\000\000\020\000\000\371\003\000\000\000\000\000"},
-	{308, "expr", 0, 2, states_52,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{309, "xor_expr", 0, 2, states_53,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{310, "and_expr", 0, 2, states_54,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{311, "shift_expr", 0, 2, states_55,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{312, "arith_expr", 0, 2, states_56,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{313, "term", 0, 2, states_57,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{314, "factor", 0, 3, states_58,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{315, "power", 0, 4, states_59,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\000\100\062\000\000"},
-	{316, "atom", 0, 11, states_60,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\000\100\062\000\000"},
-	{317, "listmaker", 0, 5, states_61,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{318, "testlist_gexp", 0, 5, states_62,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{319, "lambdef", 0, 5, states_63,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000"},
-	{320, "trailer", 0, 7, states_64,
-	 "\000\040\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\100\000\000\000"},
-	{321, "subscriptlist", 0, 3, states_65,
-	 "\000\040\050\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{322, "subscript", 0, 5, states_66,
-	 "\000\040\050\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{323, "sliceop", 0, 3, states_67,
-	 "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{324, "exprlist", 0, 3, states_68,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\000\000\000\030\102\062\000\000"},
-	{325, "testlist", 0, 3, states_69,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{326, "dictsetmaker", 0, 8, states_70,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{327, "classdef", 0, 8, states_71,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000"},
-	{328, "arglist", 0, 8, states_72,
-	 "\000\040\010\060\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{329, "argument", 0, 4, states_73,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{330, "list_iter", 0, 2, states_74,
-	 "\000\000\000\000\000\000\000\000\000\000\200\010\000\000\000\000\000\000\000\000\000"},
-	{331, "list_for", 0, 6, states_75,
-	 "\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
-	{332, "list_if", 0, 4, states_76,
-	 "\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"},
-	{333, "gen_iter", 0, 2, states_77,
-	 "\000\000\000\000\000\000\000\000\000\000\200\010\000\000\000\000\000\000\000\000\000"},
-	{334, "gen_for", 0, 6, states_78,
-	 "\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
-	{335, "gen_if", 0, 4, states_79,
-	 "\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000"},
-	{336, "testlist1", 0, 2, states_80,
-	 "\000\040\010\000\000\000\000\000\000\004\000\000\000\004\001\000\030\102\062\000\000"},
-	{337, "encoding_decl", 0, 2, states_81,
-	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{338, "yield_expr", 0, 3, states_82,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010"},
+	 "\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{263, "typedargslist", 0, 12, states_7,
+	 "\000\040\010\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{264, "tname", 0, 4, states_8,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{265, "tfpdef", 0, 4, states_9,
+	 "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{266, "tfplist", 0, 3, states_10,
+	 "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{267, "varargslist", 0, 12, states_11,
+	 "\000\040\010\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{268, "vname", 0, 2, states_12,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{269, "vfpdef", 0, 4, states_13,
+	 "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{270, "vfplist", 0, 3, states_14,
+	 "\000\040\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{271, "stmt", 0, 2, states_15,
+	 "\000\050\014\000\000\000\000\240\202\247\141\040\113\000\101\000\000\206\220\014\002\002"},
+	{272, "simple_stmt", 0, 4, states_16,
+	 "\000\040\010\000\000\000\000\240\202\247\141\000\000\000\101\000\000\206\220\014\000\002"},
+	{273, "small_stmt", 0, 2, states_17,
+	 "\000\040\010\000\000\000\000\240\202\247\141\000\000\000\101\000\000\206\220\014\000\002"},
+	{274, "expr_stmt", 0, 6, states_18,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{275, "augassign", 0, 2, states_19,
+	 "\000\000\000\000\000\000\376\037\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{276, "print_stmt", 0, 9, states_20,
+	 "\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{277, "del_stmt", 0, 3, states_21,
+	 "\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{278, "pass_stmt", 0, 2, states_22,
+	 "\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{279, "flow_stmt", 0, 2, states_23,
+	 "\000\000\000\000\000\000\000\000\200\007\000\000\000\000\000\000\000\000\000\000\000\002"},
+	{280, "break_stmt", 0, 2, states_24,
+	 "\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{281, "continue_stmt", 0, 2, states_25,
+	 "\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{282, "return_stmt", 0, 3, states_26,
+	 "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{283, "yield_stmt", 0, 2, states_27,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002"},
+	{284, "raise_stmt", 0, 7, states_28,
+	 "\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{285, "import_stmt", 0, 2, states_29,
+	 "\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{286, "import_name", 0, 3, states_30,
+	 "\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{287, "import_from", 0, 8, states_31,
+	 "\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{288, "import_as_name", 0, 4, states_32,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{289, "dotted_as_name", 0, 4, states_33,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{290, "import_as_names", 0, 3, states_34,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{291, "dotted_as_names", 0, 2, states_35,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{292, "dotted_name", 0, 2, states_36,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{293, "global_stmt", 0, 3, states_37,
+	 "\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"},
+	{294, "assert_stmt", 0, 5, states_38,
+	 "\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
+	{295, "compound_stmt", 0, 2, states_39,
+	 "\000\010\004\000\000\000\000\000\000\000\000\040\113\000\000\000\000\000\000\000\002\000"},
+	{296, "if_stmt", 0, 8, states_40,
+	 "\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000"},
+	{297, "while_stmt", 0, 8, states_41,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000"},
+	{298, "for_stmt", 0, 10, states_42,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000"},
+	{299, "try_stmt", 0, 13, states_43,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
+	{300, "with_stmt", 0, 6, states_44,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"},
+	{301, "with_var", 0, 3, states_45,
+	 "\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000"},
+	{302, "except_clause", 0, 5, states_46,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
+	{303, "suite", 0, 5, states_47,
+	 "\004\040\010\000\000\000\000\240\202\247\141\000\000\000\101\000\000\206\220\014\000\002"},
+	{304, "testlist_safe", 0, 5, states_48,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{305, "old_test", 0, 2, states_49,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{306, "old_lambdef", 0, 5, states_50,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000"},
+	{307, "test", 0, 6, states_51,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{308, "or_test", 0, 2, states_52,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\100\000\000\206\220\014\000\000"},
+	{309, "and_test", 0, 2, states_53,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\100\000\000\206\220\014\000\000"},
+	{310, "not_test", 0, 3, states_54,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\100\000\000\206\220\014\000\000"},
+	{311, "comparison", 0, 2, states_55,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{312, "comp_op", 0, 4, states_56,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\004\000\100\376\000\000\000\000\000\000"},
+	{313, "expr", 0, 2, states_57,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{314, "xor_expr", 0, 2, states_58,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{315, "and_expr", 0, 2, states_59,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{316, "shift_expr", 0, 2, states_60,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{317, "arith_expr", 0, 2, states_61,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{318, "term", 0, 2, states_62,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{319, "factor", 0, 3, states_63,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{320, "power", 0, 4, states_64,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\220\014\000\000"},
+	{321, "atom", 0, 11, states_65,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\220\014\000\000"},
+	{322, "listmaker", 0, 5, states_66,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{323, "testlist_gexp", 0, 5, states_67,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{324, "lambdef", 0, 5, states_68,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000"},
+	{325, "trailer", 0, 7, states_69,
+	 "\000\040\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\020\000\000\000"},
+	{326, "subscriptlist", 0, 3, states_70,
+	 "\000\040\210\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{327, "subscript", 0, 5, states_71,
+	 "\000\040\210\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{328, "sliceop", 0, 3, states_72,
+	 "\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{329, "exprlist", 0, 3, states_73,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\000\000\000\206\220\014\000\000"},
+	{330, "testlist", 0, 3, states_74,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{331, "dictsetmaker", 0, 8, states_75,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{332, "classdef", 0, 8, states_76,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000"},
+	{333, "arglist", 0, 8, states_77,
+	 "\000\040\010\240\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{334, "argument", 0, 4, states_78,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{335, "list_iter", 0, 2, states_79,
+	 "\000\000\000\000\000\000\000\000\000\000\000\040\002\000\000\000\000\000\000\000\000\000"},
+	{336, "list_for", 0, 6, states_80,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000"},
+	{337, "list_if", 0, 4, states_81,
+	 "\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000"},
+	{338, "gen_iter", 0, 2, states_82,
+	 "\000\000\000\000\000\000\000\000\000\000\000\040\002\000\000\000\000\000\000\000\000\000"},
+	{339, "gen_for", 0, 6, states_83,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000"},
+	{340, "gen_if", 0, 4, states_84,
+	 "\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000"},
+	{341, "testlist1", 0, 2, states_85,
+	 "\000\040\010\000\000\000\000\000\000\000\001\000\000\000\101\000\000\206\220\014\000\000"},
+	{342, "encoding_decl", 0, 2, states_86,
+	 "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+	{343, "yield_expr", 0, 3, states_87,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002"},
 };
-static label labels[164] = {
+static label labels[170] = {
 	{0, "EMPTY"},
 	{256, 0},
 	{4, 0},
-	{267, 0},
-	{290, 0},
+	{272, 0},
+	{295, 0},
 	{257, 0},
-	{266, 0},
+	{271, 0},
 	{0, 0},
 	{258, 0},
-	{325, 0},
+	{330, 0},
 	{259, 0},
 	{50, 0},
-	{287, 0},
+	{292, 0},
 	{7, 0},
-	{328, 0},
+	{333, 0},
 	{8, 0},
 	{260, 0},
 	{261, 0},
 	{1, "def"},
 	{1, 0},
 	{262, 0},
+	{51, 0},
+	{307, 0},
 	{11, 0},
-	{298, 0},
+	{303, 0},
 	{263, 0},
-	{264, 0},
+	{265, 0},
 	{22, 0},
-	{302, 0},
 	{12, 0},
 	{16, 0},
+	{264, 0},
 	{36, 0},
-	{265, 0},
-	{268, 0},
-	{13, 0},
+	{266, 0},
+	{267, 0},
 	{269, 0},
-	{271, 0},
-	{272, 0},
-	{273, 0},
-	{274, 0},
-	{280, 0},
-	{288, 0},
-	{289, 0},
+	{268, 0},
 	{270, 0},
-	{338, 0},
+	{273, 0},
+	{13, 0},
+	{274, 0},
+	{276, 0},
+	{277, 0},
+	{278, 0},
+	{279, 0},
+	{285, 0},
+	{293, 0},
+	{294, 0},
+	{275, 0},
+	{343, 0},
 	{37, 0},
 	{38, 0},
 	{39, 0},
@@ -1991,35 +2144,35 @@
 	{1, "print"},
 	{35, 0},
 	{1, "del"},
-	{324, 0},
+	{329, 0},
 	{1, "pass"},
-	{275, 0},
-	{276, 0},
-	{277, 0},
-	{279, 0},
-	{278, 0},
+	{280, 0},
+	{281, 0},
+	{282, 0},
+	{284, 0},
+	{283, 0},
 	{1, "break"},
 	{1, "continue"},
 	{1, "return"},
 	{1, "raise"},
-	{281, 0},
-	{282, 0},
-	{1, "import"},
 	{286, 0},
+	{287, 0},
+	{1, "import"},
+	{291, 0},
 	{1, "from"},
 	{23, 0},
-	{285, 0},
-	{283, 0},
+	{290, 0},
+	{288, 0},
 	{1, "as"},
-	{284, 0},
+	{289, 0},
 	{1, "global"},
 	{1, "assert"},
-	{291, 0},
-	{292, 0},
-	{293, 0},
-	{294, 0},
-	{295, 0},
-	{327, 0},
+	{296, 0},
+	{297, 0},
+	{298, 0},
+	{299, 0},
+	{300, 0},
+	{332, 0},
 	{1, "if"},
 	{1, "elif"},
 	{1, "else"},
@@ -2027,27 +2180,27 @@
 	{1, "for"},
 	{1, "in"},
 	{1, "try"},
-	{297, 0},
+	{302, 0},
 	{1, "finally"},
 	{1, "with"},
-	{296, 0},
-	{308, 0},
+	{301, 0},
+	{313, 0},
 	{1, "except"},
 	{5, 0},
 	{6, 0},
-	{299, 0},
-	{300, 0},
-	{303, 0},
-	{301, 0},
-	{1, "lambda"},
-	{319, 0},
 	{304, 0},
-	{1, "or"},
 	{305, 0},
+	{308, 0},
+	{306, 0},
+	{1, "lambda"},
+	{324, 0},
+	{309, 0},
+	{1, "or"},
+	{310, 0},
 	{1, "and"},
 	{1, "not"},
-	{306, 0},
-	{307, 0},
+	{311, 0},
+	{312, 0},
 	{20, 0},
 	{21, 0},
 	{28, 0},
@@ -2055,52 +2208,52 @@
 	{30, 0},
 	{29, 0},
 	{1, "is"},
-	{309, 0},
+	{314, 0},
 	{18, 0},
-	{310, 0},
+	{315, 0},
 	{33, 0},
-	{311, 0},
+	{316, 0},
 	{19, 0},
-	{312, 0},
+	{317, 0},
 	{34, 0},
-	{313, 0},
+	{318, 0},
 	{14, 0},
 	{15, 0},
-	{314, 0},
+	{319, 0},
 	{17, 0},
 	{24, 0},
 	{48, 0},
 	{32, 0},
-	{315, 0},
-	{316, 0},
 	{320, 0},
-	{318, 0},
+	{321, 0},
+	{325, 0},
+	{323, 0},
 	{9, 0},
-	{317, 0},
+	{322, 0},
 	{10, 0},
 	{26, 0},
-	{326, 0},
+	{331, 0},
 	{27, 0},
 	{2, 0},
 	{3, 0},
-	{331, 0},
-	{334, 0},
-	{321, 0},
-	{322, 0},
-	{323, 0},
-	{1, "class"},
-	{329, 0},
-	{330, 0},
-	{332, 0},
-	{333, 0},
-	{335, 0},
 	{336, 0},
+	{339, 0},
+	{326, 0},
+	{327, 0},
+	{328, 0},
+	{1, "class"},
+	{334, 0},
+	{335, 0},
 	{337, 0},
+	{338, 0},
+	{340, 0},
+	{341, 0},
+	{342, 0},
 	{1, "yield"},
 };
 grammar _PyParser_Grammar = {
-	83,
+	88,
 	dfas,
-	{164, labels},
+	{170, labels},
 	256
 };
diff --git a/Python/symtable.c b/Python/symtable.c
index b0ebed4..708e18c 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -172,9 +172,12 @@
 static int symtable_visit_comprehension(struct symtable *st, comprehension_ty);
 static int symtable_visit_keyword(struct symtable *st, keyword_ty);
 static int symtable_visit_slice(struct symtable *st, slice_ty);
-static int symtable_visit_params(struct symtable *st, asdl_seq *args, int top);
-static int symtable_visit_params_nested(struct symtable *st, asdl_seq *args);
+static int symtable_visit_params(struct symtable *st, asdl_seq *args, int top,
+                                 int annotations);
+static int symtable_visit_params_nested(struct symtable *st, asdl_seq *args,
+                                        int annotations);
 static int symtable_implicit_arg(struct symtable *st, int pos);
+static int symtable_visit_annotations(struct symtable *st, stmt_ty s);
 
 
 static identifier top = NULL, lambda = NULL, genexpr = NULL;
@@ -935,6 +938,8 @@
 		if (s->v.FunctionDef.args->kw_defaults)
 			VISIT_KWONLYDEFAULTS(st, 
 					   s->v.FunctionDef.args->kw_defaults);
+		if (!symtable_visit_annotations(st, s))
+			return 0;
 		if (s->v.FunctionDef.decorators)
 			VISIT_SEQ(st, expr, s->v.FunctionDef.decorators);
 		if (!symtable_enter_block(st, s->v.FunctionDef.name, 
@@ -1219,22 +1224,29 @@
 }
 
 static int 
-symtable_visit_params(struct symtable *st, asdl_seq *args, int toplevel)
+symtable_visit_params(struct symtable *st, asdl_seq *args, int toplevel,
+                      int annotations)
 {
 	int i;
+
+	if (!args)
+		return -1;
 	
         /* go through all the toplevel arguments first */
 	for (i = 0; i < asdl_seq_LEN(args); i++) {
-		expr_ty arg = (expr_ty)asdl_seq_GET(args, i);
-		if (arg->kind == Name_kind) {
-			assert(arg->v.Name.ctx == Param ||
-                               (arg->v.Name.ctx == Store && !toplevel));
-			if (!symtable_add_def(st, arg->v.Name.id, DEF_PARAM))
-				return 0;
+		arg_ty arg = (arg_ty)asdl_seq_GET(args, i);
+		if (arg->kind == SimpleArg_kind) {
+			if (!annotations) {
+				if (!symtable_add_def(st,
+				                      arg->v.SimpleArg.arg,
+				                      DEF_PARAM))
+					return 0;
+			}
+			else if (arg->v.SimpleArg.annotation)
+				VISIT(st, expr, arg->v.SimpleArg.annotation);
 		}
-		else if (arg->kind == Tuple_kind) {
-			assert(arg->v.Tuple.ctx == Store);
-			if (toplevel) {
+		else if (arg->kind == NestedArgs_kind) {
+			if (toplevel && !annotations) {
 				if (!symtable_implicit_arg(st, i))
 					return 0;
 			}
@@ -1249,7 +1261,7 @@
 	}
 
 	if (!toplevel) {
-		if (!symtable_visit_params_nested(st, args))
+		if (!symtable_visit_params_nested(st, args, annotations))
 			return 0;
 	}
 
@@ -1257,16 +1269,37 @@
 }
 
 static int
-symtable_visit_params_nested(struct symtable *st, asdl_seq *args)
+symtable_visit_params_nested(struct symtable *st, asdl_seq *args,
+                             int annotations)
 {
 	int i;
 	for (i = 0; i < asdl_seq_LEN(args); i++) {
-		expr_ty arg = (expr_ty)asdl_seq_GET(args, i);
-		if (arg->kind == Tuple_kind &&
-		    !symtable_visit_params(st, arg->v.Tuple.elts, 0))
+		arg_ty arg = (arg_ty)asdl_seq_GET(args, i);
+		if (arg->kind == NestedArgs_kind &&
+		    !symtable_visit_params(st, arg->v.NestedArgs.args, 0,
+		                           annotations))
 			return 0;
 	}
+
+	return 1;
+}
+
+
+static int
+symtable_visit_annotations(struct symtable *st, stmt_ty s)
+{
+	arguments_ty a = s->v.FunctionDef.args;
 	
+	if (a->args && !symtable_visit_params(st, a->args, 1, 1))
+		return 0;
+	if (a->varargannotation)
+		VISIT(st, expr, a->varargannotation);
+	if (a->kwargannotation)
+		VISIT(st, expr, a->kwargannotation);
+	if (a->kwonlyargs && !symtable_visit_params(st, a->kwonlyargs, 1, 1))
+		return 0;
+	if (s->v.FunctionDef.returns)
+		VISIT(st, expr, s->v.FunctionDef.returns);
 	return 1;
 }
 
@@ -1276,9 +1309,9 @@
 	/* skip default arguments inside function block
 	   XXX should ast be different?
 	*/
-	if (a->args && !symtable_visit_params(st, a->args, 1))
+	if (a->args && !symtable_visit_params(st, a->args, 1, 0))
 		return 0;
-	if (a->kwonlyargs && !symtable_visit_params(st, a->kwonlyargs, 1))
+	if (a->kwonlyargs && !symtable_visit_params(st, a->kwonlyargs, 1, 0))
 		return 0;
 	if (a->vararg) {
 		if (!symtable_add_def(st, a->vararg, DEF_PARAM))
@@ -1290,7 +1323,7 @@
 			return 0;
 		st->st_cur->ste_varkeywords = 1;
 	}
-	if (a->args && !symtable_visit_params_nested(st, a->args))
+	if (a->args && !symtable_visit_params_nested(st, a->args, 0))
 		return 0;
 	return 1;
 }
