diff options
author | Benjamin Peterson <benjamin@python.org> | 2015-05-06 00:16:41 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2015-05-06 00:16:41 (GMT) |
commit | 025e9ebd0a0a19f50ca83af6ada0ac65be1fa2a1 (patch) | |
tree | d769adcb6d4a557a00923f18ed2b0ca8b515a473 /Python | |
parent | 4ccc1514d070cabe80e8cfa0469dc03c12d08be2 (diff) | |
download | cpython-025e9ebd0a0a19f50ca83af6ada0ac65be1fa2a1.zip cpython-025e9ebd0a0a19f50ca83af6ada0ac65be1fa2a1.tar.gz cpython-025e9ebd0a0a19f50ca83af6ada0ac65be1fa2a1.tar.bz2 |
PEP 448: additional unpacking generalizations (closes #2292)
Patch by Neil Girdhar.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/Python-ast.c | 105 | ||||
-rw-r--r-- | Python/ast.c | 336 | ||||
-rw-r--r-- | Python/ceval.c | 164 | ||||
-rw-r--r-- | Python/compile.c | 319 | ||||
-rw-r--r-- | Python/graminit.c | 154 | ||||
-rw-r--r-- | Python/importlib_external.h | 2999 | ||||
-rw-r--r-- | Python/opcode_targets.h | 10 | ||||
-rw-r--r-- | Python/symtable.c | 26 |
8 files changed, 2211 insertions, 1902 deletions
diff --git a/Python/Python-ast.c b/Python/Python-ast.c index 994e721..6dd175f 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -48,14 +48,10 @@ static char *FunctionDef_fields[]={ static PyTypeObject *ClassDef_type; _Py_IDENTIFIER(bases); _Py_IDENTIFIER(keywords); -_Py_IDENTIFIER(starargs); -_Py_IDENTIFIER(kwargs); static char *ClassDef_fields[]={ "name", "bases", "keywords", - "starargs", - "kwargs", "body", "decorator_list", }; @@ -254,8 +250,6 @@ static char *Call_fields[]={ "func", "args", "keywords", - "starargs", - "kwargs", }; static PyTypeObject *Num_type; _Py_IDENTIFIER(n); @@ -812,7 +806,7 @@ static int init_types(void) FunctionDef_type = make_type("FunctionDef", stmt_type, FunctionDef_fields, 5); if (!FunctionDef_type) return 0; - ClassDef_type = make_type("ClassDef", stmt_type, ClassDef_fields, 7); + ClassDef_type = make_type("ClassDef", stmt_type, ClassDef_fields, 5); if (!ClassDef_type) return 0; Return_type = make_type("Return", stmt_type, Return_fields, 1); if (!Return_type) return 0; @@ -884,7 +878,7 @@ static int init_types(void) if (!YieldFrom_type) return 0; Compare_type = make_type("Compare", expr_type, Compare_fields, 3); if (!Compare_type) return 0; - Call_type = make_type("Call", expr_type, Call_fields, 5); + Call_type = make_type("Call", expr_type, Call_fields, 3); if (!Call_type) return 0; Num_type = make_type("Num", expr_type, Num_fields, 1); if (!Num_type) return 0; @@ -1207,9 +1201,9 @@ FunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq * } stmt_ty -ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords, expr_ty - starargs, expr_ty kwargs, asdl_seq * body, asdl_seq * decorator_list, - int lineno, int col_offset, PyArena *arena) +ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords, asdl_seq * + body, asdl_seq * decorator_list, int lineno, int col_offset, PyArena + *arena) { stmt_ty p; if (!name) { @@ -1224,8 +1218,6 @@ ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords, expr_ty p->v.ClassDef.name = name; p->v.ClassDef.bases = bases; p->v.ClassDef.keywords = keywords; - p->v.ClassDef.starargs = starargs; - p->v.ClassDef.kwargs = kwargs; p->v.ClassDef.body = body; p->v.ClassDef.decorator_list = decorator_list; p->lineno = lineno; @@ -1885,8 +1877,8 @@ Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators, int lineno, } expr_ty -Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, expr_ty starargs, - expr_ty kwargs, int lineno, int col_offset, PyArena *arena) +Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int lineno, int + col_offset, PyArena *arena) { expr_ty p; if (!func) { @@ -1901,8 +1893,6 @@ Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, expr_ty starargs, p->v.Call.func = func; p->v.Call.args = args; p->v.Call.keywords = keywords; - p->v.Call.starargs = starargs; - p->v.Call.kwargs = kwargs; p->lineno = lineno; p->col_offset = col_offset; return p; @@ -2276,11 +2266,6 @@ keyword_ty keyword(identifier arg, expr_ty value, PyArena *arena) { keyword_ty p; - if (!arg) { - PyErr_SetString(PyExc_ValueError, - "field arg is required for keyword"); - return NULL; - } if (!value) { PyErr_SetString(PyExc_ValueError, "field value is required for keyword"); @@ -2442,16 +2427,6 @@ ast2obj_stmt(void* _o) if (_PyObject_SetAttrId(result, &PyId_keywords, value) == -1) goto failed; Py_DECREF(value); - value = ast2obj_expr(o->v.ClassDef.starargs); - if (!value) goto failed; - if (_PyObject_SetAttrId(result, &PyId_starargs, value) == -1) - goto failed; - Py_DECREF(value); - value = ast2obj_expr(o->v.ClassDef.kwargs); - if (!value) goto failed; - if (_PyObject_SetAttrId(result, &PyId_kwargs, value) == -1) - goto failed; - Py_DECREF(value); value = ast2obj_list(o->v.ClassDef.body, ast2obj_stmt); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_body, value) == -1) @@ -2964,16 +2939,6 @@ ast2obj_expr(void* _o) if (_PyObject_SetAttrId(result, &PyId_keywords, value) == -1) goto failed; Py_DECREF(value); - value = ast2obj_expr(o->v.Call.starargs); - if (!value) goto failed; - if (_PyObject_SetAttrId(result, &PyId_starargs, value) == -1) - goto failed; - Py_DECREF(value); - value = ast2obj_expr(o->v.Call.kwargs); - if (!value) goto failed; - if (_PyObject_SetAttrId(result, &PyId_kwargs, value) == -1) - goto failed; - Py_DECREF(value); break; case Num_kind: result = PyType_GenericNew(Num_type, NULL, NULL); @@ -3875,8 +3840,6 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) identifier name; asdl_seq* bases; asdl_seq* keywords; - expr_ty starargs; - expr_ty kwargs; asdl_seq* body; asdl_seq* decorator_list; @@ -3939,26 +3902,6 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from ClassDef"); return 1; } - if (exists_not_none(obj, &PyId_starargs)) { - int res; - tmp = _PyObject_GetAttrId(obj, &PyId_starargs); - if (tmp == NULL) goto failed; - res = obj2ast_expr(tmp, &starargs, arena); - if (res != 0) goto failed; - Py_CLEAR(tmp); - } else { - starargs = NULL; - } - if (exists_not_none(obj, &PyId_kwargs)) { - int res; - tmp = _PyObject_GetAttrId(obj, &PyId_kwargs); - if (tmp == NULL) goto failed; - res = obj2ast_expr(tmp, &kwargs, arena); - if (res != 0) goto failed; - Py_CLEAR(tmp); - } else { - kwargs = NULL; - } if (_PyObject_HasAttrId(obj, &PyId_body)) { int res; Py_ssize_t len; @@ -4007,8 +3950,8 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) PyErr_SetString(PyExc_TypeError, "required field \"decorator_list\" missing from ClassDef"); return 1; } - *out = ClassDef(name, bases, keywords, starargs, kwargs, body, - decorator_list, lineno, col_offset, arena); + *out = ClassDef(name, bases, keywords, body, decorator_list, lineno, + col_offset, arena); if (*out == NULL) goto failed; return 0; } @@ -5506,8 +5449,6 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty func; asdl_seq* args; asdl_seq* keywords; - expr_ty starargs; - expr_ty kwargs; if (_PyObject_HasAttrId(obj, &PyId_func)) { int res; @@ -5568,28 +5509,7 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from Call"); return 1; } - if (exists_not_none(obj, &PyId_starargs)) { - int res; - tmp = _PyObject_GetAttrId(obj, &PyId_starargs); - if (tmp == NULL) goto failed; - res = obj2ast_expr(tmp, &starargs, arena); - if (res != 0) goto failed; - Py_CLEAR(tmp); - } else { - starargs = NULL; - } - if (exists_not_none(obj, &PyId_kwargs)) { - int res; - tmp = _PyObject_GetAttrId(obj, &PyId_kwargs); - if (tmp == NULL) goto failed; - res = obj2ast_expr(tmp, &kwargs, arena); - if (res != 0) goto failed; - Py_CLEAR(tmp); - } else { - kwargs = NULL; - } - *out = Call(func, args, keywords, starargs, kwargs, lineno, col_offset, - arena); + *out = Call(func, args, keywords, lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } @@ -6737,7 +6657,7 @@ obj2ast_keyword(PyObject* obj, keyword_ty* out, PyArena* arena) identifier arg; expr_ty value; - if (_PyObject_HasAttrId(obj, &PyId_arg)) { + if (exists_not_none(obj, &PyId_arg)) { int res; tmp = _PyObject_GetAttrId(obj, &PyId_arg); if (tmp == NULL) goto failed; @@ -6745,8 +6665,7 @@ obj2ast_keyword(PyObject* obj, keyword_ty* out, PyArena* arena) if (res != 0) goto failed; Py_CLEAR(tmp); } else { - PyErr_SetString(PyExc_TypeError, "required field \"arg\" missing from keyword"); - return 1; + arg = NULL; } if (_PyObject_HasAttrId(obj, &PyId_value)) { int res; diff --git a/Python/ast.c b/Python/ast.c index b48471e..69454fe 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -235,9 +235,7 @@ validate_expr(expr_ty exp, expr_context_ty ctx) case Call_kind: return validate_expr(exp->v.Call.func, Load) && validate_exprs(exp->v.Call.args, Load, 0) && - validate_keywords(exp->v.Call.keywords) && - (!exp->v.Call.starargs || validate_expr(exp->v.Call.starargs, Load)) && - (!exp->v.Call.kwargs || validate_expr(exp->v.Call.kwargs, Load)); + validate_keywords(exp->v.Call.keywords); case Num_kind: { PyObject *n = exp->v.Num.n; if (!PyLong_CheckExact(n) && !PyFloat_CheckExact(n) && @@ -322,9 +320,7 @@ validate_stmt(stmt_ty stmt) return validate_body(stmt->v.ClassDef.body, "ClassDef") && validate_exprs(stmt->v.ClassDef.bases, Load, 0) && validate_keywords(stmt->v.ClassDef.keywords) && - validate_exprs(stmt->v.ClassDef.decorator_list, Load, 0) && - (!stmt->v.ClassDef.starargs || validate_expr(stmt->v.ClassDef.starargs, Load)) && - (!stmt->v.ClassDef.kwargs || validate_expr(stmt->v.ClassDef.kwargs, Load)); + validate_exprs(stmt->v.ClassDef.decorator_list, Load, 0); case Return_kind: return !stmt->v.Return.value || validate_expr(stmt->v.Return.value, Load); case Delete_kind: @@ -848,7 +844,8 @@ static const char* FORBIDDEN[] = { }; static int -forbidden_name(struct compiling *c, identifier name, const node *n, int full_checks) +forbidden_name(struct compiling *c, identifier name, const node *n, + int full_checks) { assert(PyUnicode_Check(name)); if (PyUnicode_CompareWithASCIIString(name, "__debug__") == 0) { @@ -1445,7 +1442,7 @@ ast_for_decorator(struct compiling *c, const node *n) name_expr = NULL; } else if (NCH(n) == 5) { /* Call with no arguments */ - d = Call(name_expr, NULL, NULL, NULL, NULL, LINENO(n), + d = Call(name_expr, NULL, NULL, LINENO(n), n->n_col_offset, c->c_arena); if (!d) return NULL; @@ -1735,16 +1732,22 @@ ast_for_comprehension(struct compiling *c, const node *n) static expr_ty ast_for_itercomp(struct compiling *c, const node *n, int type) { - /* testlist_comp: test ( comp_for | (',' test)* [','] ) - argument: [test '='] test [comp_for] # Really [keyword '='] test */ + /* testlist_comp: (test|star_expr) + * ( comp_for | (',' (test|star_expr))* [','] ) */ expr_ty elt; asdl_seq *comps; + node *ch; assert(NCH(n) > 1); - elt = ast_for_expr(c, CHILD(n, 0)); + ch = CHILD(n, 0); + elt = ast_for_expr(c, ch); if (!elt) return NULL; + if (elt->kind == Starred_kind) { + ast_error(c, ch, "iterable unpacking cannot be used in comprehension"); + return NULL; + } comps = ast_for_comprehension(c, CHILD(n, 1)); if (!comps) @@ -1761,23 +1764,59 @@ ast_for_itercomp(struct compiling *c, const node *n, int type) return NULL; } +/* Fills in the key, value pair corresponding to the dict element. In case + * of an unpacking, key is NULL. *i is advanced by the number of ast + * elements. Iff successful, nonzero is returned. + */ +static int +ast_for_dictelement(struct compiling *c, const node *n, int *i, + expr_ty *key, expr_ty *value) +{ + expr_ty expression; + if (TYPE(CHILD(n, *i)) == DOUBLESTAR) { + assert(NCH(n) - *i >= 2); + + expression = ast_for_expr(c, CHILD(n, *i + 1)); + if (!expression) + return 0; + *key = NULL; + *value = expression; + + *i += 2; + } + else { + assert(NCH(n) - *i >= 3); + + expression = ast_for_expr(c, CHILD(n, *i)); + if (!expression) + return 0; + *key = expression; + + REQ(CHILD(n, *i + 1), COLON); + + expression = ast_for_expr(c, CHILD(n, *i + 2)); + if (!expression) + return 0; + *value = expression; + + *i += 3; + } + return 1; +} + static expr_ty ast_for_dictcomp(struct compiling *c, const node *n) { expr_ty key, value; asdl_seq *comps; + int i = 0; - assert(NCH(n) > 3); - REQ(CHILD(n, 1), COLON); - - key = ast_for_expr(c, CHILD(n, 0)); - if (!key) - return NULL; - value = ast_for_expr(c, CHILD(n, 2)); - if (!value) + if (!ast_for_dictelement(c, n, &i, &key, &value)) return NULL; + assert(key); + assert(NCH(n) - i >= 1); - comps = ast_for_comprehension(c, CHILD(n, 3)); + comps = ast_for_comprehension(c, CHILD(n, i)); if (!comps) return NULL; @@ -1785,6 +1824,39 @@ ast_for_dictcomp(struct compiling *c, const node *n) } static expr_ty +ast_for_dictdisplay(struct compiling *c, const node *n) +{ + int i; + int j; + int size; + asdl_seq *keys, *values; + + size = (NCH(n) + 1) / 3; /* +1 in case no trailing comma */ + keys = _Py_asdl_seq_new(size, c->c_arena); + if (!keys) + return NULL; + + values = _Py_asdl_seq_new(size, c->c_arena); + if (!values) + return NULL; + + j = 0; + for (i = 0; i < NCH(n); i++) { + expr_ty key, value; + + if (!ast_for_dictelement(c, n, &i, &key, &value)) + return NULL; + asdl_seq_SET(keys, j, key); + asdl_seq_SET(values, j, value); + + j++; + } + keys->size = j; + values->size = j; + return Dict(keys, values, LINENO(n), n->n_col_offset, c->c_arena); +} + +static expr_ty ast_for_genexp(struct compiling *c, const node *n) { assert(TYPE(n) == (testlist_comp) || TYPE(n) == (argument)); @@ -1805,6 +1877,27 @@ ast_for_setcomp(struct compiling *c, const node *n) return ast_for_itercomp(c, n, COMP_SETCOMP); } +static expr_ty +ast_for_setdisplay(struct compiling *c, const node *n) +{ + int i; + int size; + asdl_seq *elts; + + assert(TYPE(n) == (dictorsetmaker)); + size = (NCH(n) + 1) / 2; /* +1 in case no trailing comma */ + elts = _Py_asdl_seq_new(size, c->c_arena); + if (!elts) + return NULL; + for (i = 0; i < NCH(n); i += 2) { + expr_ty expression; + expression = ast_for_expr(c, CHILD(n, i)); + if (!expression) + return NULL; + asdl_seq_SET(elts, i / 2, expression); + } + return Set(elts, LINENO(n), n->n_col_offset, c->c_arena); +} static expr_ty ast_for_atom(struct compiling *c, const node *n) @@ -1915,62 +2008,42 @@ ast_for_atom(struct compiling *c, const node *n) else return ast_for_listcomp(c, ch); case LBRACE: { - /* dictorsetmaker: test ':' test (',' test ':' test)* [','] | - * test (gen_for | (',' test)* [',']) */ - int i, size; - asdl_seq *keys, *values; - + /* dictorsetmaker: ( ((test ':' test | '**' test) + * (comp_for | (',' (test ':' test | '**' test))* [','])) | + * ((test | '*' test) + * (comp_for | (',' (test | '*' test))* [','])) ) */ ch = CHILD(n, 1); if (TYPE(ch) == RBRACE) { - /* it's an empty dict */ + /* It's an empty dict. */ return Dict(NULL, NULL, LINENO(n), n->n_col_offset, c->c_arena); - } else if (NCH(ch) == 1 || TYPE(CHILD(ch, 1)) == COMMA) { - /* it's a simple set */ - asdl_seq *elts; - size = (NCH(ch) + 1) / 2; /* +1 in case no trailing comma */ - elts = _Py_asdl_seq_new(size, c->c_arena); - if (!elts) - return NULL; - for (i = 0; i < NCH(ch); i += 2) { - expr_ty expression; - expression = ast_for_expr(c, CHILD(ch, i)); - if (!expression) - return NULL; - asdl_seq_SET(elts, i / 2, expression); + } + else { + int is_dict = (TYPE(CHILD(ch, 0)) == DOUBLESTAR); + if (NCH(ch) == 1 || + (NCH(ch) > 1 && + TYPE(CHILD(ch, 1)) == COMMA)) { + /* It's a set display. */ + return ast_for_setdisplay(c, ch); } - return Set(elts, LINENO(n), n->n_col_offset, c->c_arena); - } else if (TYPE(CHILD(ch, 1)) == comp_for) { - /* it's a set comprehension */ - return ast_for_setcomp(c, ch); - } else if (NCH(ch) > 3 && TYPE(CHILD(ch, 3)) == comp_for) { - return ast_for_dictcomp(c, ch); - } else { - /* it's a dict */ - size = (NCH(ch) + 1) / 4; /* +1 in case no trailing comma */ - keys = _Py_asdl_seq_new(size, c->c_arena); - if (!keys) - return NULL; - - values = _Py_asdl_seq_new(size, c->c_arena); - if (!values) - return NULL; - - for (i = 0; i < NCH(ch); i += 4) { - expr_ty expression; - - expression = ast_for_expr(c, CHILD(ch, i)); - if (!expression) - return NULL; - - asdl_seq_SET(keys, i / 4, expression); - - expression = ast_for_expr(c, CHILD(ch, i + 2)); - if (!expression) + else if (NCH(ch) > 1 && + TYPE(CHILD(ch, 1)) == comp_for) { + /* It's a set comprehension. */ + return ast_for_setcomp(c, ch); + } + else if (NCH(ch) > 3 - is_dict && + TYPE(CHILD(ch, 3 - is_dict)) == comp_for) { + /* It's a dictionary comprehension. */ + if (is_dict) { + ast_error(c, n, "dict unpacking cannot be used in " + "dict comprehension"); return NULL; - - asdl_seq_SET(values, i / 4, expression); + } + return ast_for_dictcomp(c, ch); + } + else { + /* It's a dictionary display. */ + return ast_for_dictdisplay(c, ch); } - return Dict(keys, values, LINENO(n), n->n_col_offset, c->c_arena); } } default: @@ -2106,7 +2179,7 @@ ast_for_trailer(struct compiling *c, const node *n, expr_ty left_expr) REQ(n, trailer); if (TYPE(CHILD(n, 0)) == LPAR) { if (NCH(n) == 2) - return Call(left_expr, NULL, NULL, NULL, NULL, LINENO(n), + return Call(left_expr, NULL, NULL, LINENO(n), n->n_col_offset, c->c_arena); else return ast_for_call(c, CHILD(n, 1), left_expr); @@ -2415,15 +2488,14 @@ static expr_ty ast_for_call(struct compiling *c, const node *n, expr_ty func) { /* - arglist: (argument ',')* (argument [',']| '*' test [',' '**' test] - | '**' test) - argument: [test '='] (test) [comp_for] # Really [keyword '='] test + arglist: argument (',' argument)* [','] + argument: ( test [comp_for] | '*' test | test '=' test | '**' test ) */ int i, nargs, nkeywords, ngens; + int ndoublestars; asdl_seq *args; asdl_seq *keywords; - expr_ty vararg = NULL, kwarg = NULL; REQ(n, arglist); @@ -2437,7 +2509,10 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func) nargs++; else if (TYPE(CHILD(ch, 1)) == comp_for) ngens++; + else if (TYPE(CHILD(ch, 0)) == STAR) + nargs++; else + /* TYPE(CHILD(ch, 0)) == DOUBLESTAR or keyword argument */ nkeywords++; } } @@ -2458,41 +2533,82 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func) keywords = _Py_asdl_seq_new(nkeywords, c->c_arena); if (!keywords) return NULL; - nargs = 0; - nkeywords = 0; + + nargs = 0; /* positional arguments + iterable argument unpackings */ + nkeywords = 0; /* keyword arguments + keyword argument unpackings */ + ndoublestars = 0; /* just keyword argument unpackings */ for (i = 0; i < NCH(n); i++) { node *ch = CHILD(n, i); if (TYPE(ch) == argument) { expr_ty e; + node *chch = CHILD(ch, 0); if (NCH(ch) == 1) { - if (nkeywords) { - ast_error(c, CHILD(ch, 0), - "non-keyword arg after keyword arg"); - return NULL; + if (TYPE(chch) == star_expr) { + /* an iterable argument unpacking */ + expr_ty starred; + if (ndoublestars) { + ast_error(c, chch, + "iterable argument unpacking follows " + "keyword argument unpacking"); + return NULL; + } + e = ast_for_expr(c, CHILD(chch, 1)); + if (!e) + return NULL; + starred = Starred(e, Load, LINENO(chch), + chch->n_col_offset, + c->c_arena); + if (!starred) + return NULL; + asdl_seq_SET(args, nargs++, starred); } - if (vararg) { - ast_error(c, CHILD(ch, 0), - "only named arguments may follow *expression"); - return NULL; + else { + /* a positional argument */ + if (nkeywords) { + if (ndoublestars) { + ast_error(c, chch, + "positional argument follows " + "keyword argument unpacking"); + } + else { + ast_error(c, chch, + "positional argument follows " + "keyword argument"); + } + return NULL; + } + e = ast_for_expr(c, chch); + if (!e) + return NULL; + asdl_seq_SET(args, nargs++, e); } - e = ast_for_expr(c, CHILD(ch, 0)); + } + else if (TYPE(chch) == DOUBLESTAR) { + /* a keyword argument unpacking */ + keyword_ty kw; + i++; + e = ast_for_expr(c, CHILD(ch, 1)); if (!e) return NULL; - asdl_seq_SET(args, nargs++, e); + kw = keyword(NULL, e, c->c_arena); + asdl_seq_SET(keywords, nkeywords++, kw); + ndoublestars++; } else if (TYPE(CHILD(ch, 1)) == comp_for) { + /* the lone generator expression */ e = ast_for_genexp(c, ch); if (!e) return NULL; asdl_seq_SET(args, nargs++, e); } else { + /* a keyword argument */ keyword_ty kw; identifier key, tmp; int k; - /* CHILD(ch, 0) is test, but must be an identifier? */ - e = ast_for_expr(c, CHILD(ch, 0)); + /* chch is test, but must be an identifier? */ + e = ast_for_expr(c, chch); if (!e) return NULL; /* f(lambda x: x[0] = 3) ends up getting parsed with @@ -2501,19 +2617,24 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func) * then is very confusing. */ if (e->kind == Lambda_kind) { - ast_error(c, CHILD(ch, 0), "lambda cannot contain assignment"); + ast_error(c, chch, + "lambda cannot contain assignment"); return NULL; - } else if (e->kind != Name_kind) { - ast_error(c, CHILD(ch, 0), "keyword can't be an expression"); + } + else if (e->kind != Name_kind) { + ast_error(c, chch, + "keyword can't be an expression"); return NULL; - } else if (forbidden_name(c, e->v.Name.id, ch, 1)) { + } + else if (forbidden_name(c, e->v.Name.id, ch, 1)) { return NULL; } key = e->v.Name.id; for (k = 0; k < nkeywords; k++) { tmp = ((keyword_ty)asdl_seq_GET(keywords, k))->arg; - if (!PyUnicode_Compare(tmp, key)) { - ast_error(c, CHILD(ch, 0), "keyword argument repeated"); + if (tmp && !PyUnicode_Compare(tmp, key)) { + ast_error(c, chch, + "keyword argument repeated"); return NULL; } } @@ -2526,21 +2647,9 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func) asdl_seq_SET(keywords, nkeywords++, kw); } } - else if (TYPE(ch) == STAR) { - vararg = ast_for_expr(c, CHILD(n, i+1)); - if (!vararg) - return NULL; - i++; - } - else if (TYPE(ch) == DOUBLESTAR) { - kwarg = ast_for_expr(c, CHILD(n, i+1)); - if (!kwarg) - return NULL; - i++; - } } - return Call(func, args, keywords, vararg, kwarg, func->lineno, func->col_offset, c->c_arena); + return Call(func, args, keywords, func->lineno, func->col_offset, c->c_arena); } static expr_ty @@ -3520,8 +3629,8 @@ ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq) return NULL; if (forbidden_name(c, classname, CHILD(n, 3), 0)) return NULL; - return ClassDef(classname, NULL, NULL, NULL, NULL, s, decorator_seq, - LINENO(n), n->n_col_offset, c->c_arena); + return ClassDef(classname, NULL, NULL, s, decorator_seq, LINENO(n), + n->n_col_offset, c->c_arena); } if (TYPE(CHILD(n, 3)) == RPAR) { /* class NAME '(' ')' ':' suite */ @@ -3533,8 +3642,8 @@ ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq) return NULL; if (forbidden_name(c, classname, CHILD(n, 3), 0)) return NULL; - return ClassDef(classname, NULL, NULL, NULL, NULL, s, decorator_seq, - LINENO(n), n->n_col_offset, c->c_arena); + return ClassDef(classname, NULL, NULL, s, decorator_seq, LINENO(n), + n->n_col_offset, c->c_arena); } /* class NAME '(' arglist ')' ':' suite */ @@ -3559,8 +3668,7 @@ ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq) if (forbidden_name(c, classname, CHILD(n, 1), 0)) return NULL; - return ClassDef(classname, call->v.Call.args, call->v.Call.keywords, - call->v.Call.starargs, call->v.Call.kwargs, s, + return ClassDef(classname, call->v.Call.args, call->v.Call.keywords, s, decorator_seq, LINENO(n), n->n_col_offset, c->c_arena); } diff --git a/Python/ceval.c b/Python/ceval.c index 2f3d3ad..5ee9077 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -12,8 +12,10 @@ #include "Python.h" #include "code.h" +#include "dictobject.h" #include "frameobject.h" #include "opcode.h" +#include "setobject.h" #include "structmember.h" #include <ctype.h> @@ -2379,6 +2381,43 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) DISPATCH(); } + TARGET_WITH_IMPL(BUILD_TUPLE_UNPACK, _build_list_unpack) + TARGET(BUILD_LIST_UNPACK) + _build_list_unpack: { + int convert_to_tuple = opcode == BUILD_TUPLE_UNPACK; + int i; + PyObject *sum = PyList_New(0); + PyObject *return_value; + if (sum == NULL) + goto error; + + for (i = oparg; i > 0; i--) { + PyObject *none_val; + + none_val = _PyList_Extend((PyListObject *)sum, PEEK(i)); + if (none_val == NULL) { + Py_DECREF(sum); + goto error; + } + Py_DECREF(none_val); + } + + if (convert_to_tuple) { + return_value = PyList_AsTuple(sum); + Py_DECREF(sum); + if (return_value == NULL) + goto error; + } + else { + return_value = sum; + } + + while (oparg--) + Py_DECREF(POP()); + PUSH(return_value); + DISPATCH(); + } + TARGET(BUILD_SET) { PyObject *set = PySet_New(NULL); int err = 0; @@ -2398,14 +2437,127 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) DISPATCH(); } + TARGET(BUILD_SET_UNPACK) { + int i; + PyObject *sum = PySet_New(NULL); + if (sum == NULL) + goto error; + + for (i = oparg; i > 0; i--) { + if (_PySet_Update(sum, PEEK(i)) < 0) { + Py_DECREF(sum); + goto error; + } + } + + while (oparg--) + Py_DECREF(POP()); + PUSH(sum); + DISPATCH(); + } + TARGET(BUILD_MAP) { PyObject *map = _PyDict_NewPresized((Py_ssize_t)oparg); if (map == NULL) goto error; + while (--oparg >= 0) { + int err; + PyObject *key = TOP(); + PyObject *value = SECOND(); + STACKADJ(-2); + err = PyDict_SetItem(map, key, value); + Py_DECREF(value); + Py_DECREF(key); + if (err != 0) { + Py_DECREF(map); + goto error; + } + } PUSH(map); DISPATCH(); } + TARGET_WITH_IMPL(BUILD_MAP_UNPACK_WITH_CALL, _build_map_unpack) + TARGET(BUILD_MAP_UNPACK) + _build_map_unpack: { + int with_call = opcode == BUILD_MAP_UNPACK_WITH_CALL; + int num_maps; + int function_location; + int i; + PyObject *sum = PyDict_New(); + if (sum == NULL) + goto error; + if (with_call) { + num_maps = oparg & 0xff; + function_location = (oparg>>8) & 0xff; + } + else { + num_maps = oparg; + } + + for (i = num_maps; i > 0; i--) { + PyObject *arg = PEEK(i); + if (with_call) { + PyObject *intersection = _PyDictView_Intersect(sum, arg); + + if (intersection == NULL) { + if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyObject *func = ( + PEEK(function_location + num_maps)); + PyErr_Format(PyExc_TypeError, + "%.200s%.200s argument after ** " + "must be a mapping, not %.200s", + PyEval_GetFuncName(func), + PyEval_GetFuncDesc(func), + arg->ob_type->tp_name); + } + Py_DECREF(sum); + goto error; + } + + if (PySet_GET_SIZE(intersection)) { + Py_ssize_t idx = 0; + PyObject *key; + PyObject *func = PEEK(function_location + num_maps); + Py_hash_t hash; + _PySet_NextEntry(intersection, &idx, &key, &hash); + if (!PyUnicode_Check(key)) { + PyErr_Format(PyExc_TypeError, + "%.200s%.200s keywords must be strings", + PyEval_GetFuncName(func), + PyEval_GetFuncDesc(func)); + } else { + PyErr_Format(PyExc_TypeError, + "%.200s%.200s got multiple " + "values for keyword argument '%U'", + PyEval_GetFuncName(func), + PyEval_GetFuncDesc(func), + key); + } + Py_DECREF(intersection); + Py_DECREF(sum); + goto error; + } + Py_DECREF(intersection); + } + + if (PyDict_Update(sum, arg) < 0) { + if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Format(PyExc_TypeError, + "'%.200s' object is not a mapping", + arg->ob_type->tp_name); + } + Py_DECREF(sum); + goto error; + } + } + + while (num_maps--) + Py_DECREF(POP()); + PUSH(sum); + DISPATCH(); + } + TARGET(STORE_MAP) { PyObject *key = TOP(); PyObject *value = SECOND(); @@ -3050,6 +3202,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) goto dispatch_opcode; } + #if USE_COMPUTED_GOTOS _unknown_opcode: #endif @@ -4557,6 +4710,12 @@ ext_do_call(PyObject *func, PyObject ***pp_stack, int flags, int na, int nk) kwdict = d; } } + if (nk > 0) { + kwdict = update_keyword_args(kwdict, nk, pp_stack, func); + if (kwdict == NULL) + goto ext_call_fail; + } + if (flags & CALL_FLAG_VAR) { stararg = EXT_POP(*pp_stack); if (!PyTuple_Check(stararg)) { @@ -4578,11 +4737,6 @@ ext_do_call(PyObject *func, PyObject ***pp_stack, int flags, int na, int nk) } nstar = PyTuple_GET_SIZE(stararg); } - if (nk > 0) { - kwdict = update_keyword_args(kwdict, nk, pp_stack, func); - if (kwdict == NULL) - goto ext_call_fail; - } callargs = update_star_args(na, nstar, stararg, pp_stack); if (callargs == NULL) goto ext_call_fail; diff --git a/Python/compile.c b/Python/compile.c index 855ec46..bf4cf40 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -195,9 +195,7 @@ static int expr_constant(struct compiler *, expr_ty); static int compiler_with(struct compiler *, stmt_ty, int); static int compiler_call_helper(struct compiler *c, Py_ssize_t n, asdl_seq *args, - asdl_seq *keywords, - expr_ty starargs, - expr_ty kwargs); + asdl_seq *keywords); static int compiler_try_except(struct compiler *, stmt_ty); static int compiler_set_qualname(struct compiler *); @@ -672,7 +670,8 @@ compiler_set_qualname(struct compiler *c) PyObject *mangled, *capsule; capsule = PyList_GET_ITEM(c->c_stack, stack_size - 1); - parent = (struct compiler_unit *)PyCapsule_GetPointer(capsule, COMPILER_CAPSULE_NAME_COMPILER_UNIT); + parent = (struct compiler_unit *)PyCapsule_GetPointer( + capsule, COMPILER_CAPSULE_NAME_COMPILER_UNIT); assert(parent); if (u->u_scope_type == COMPILER_SCOPE_FUNCTION || u->u_scope_type == COMPILER_SCOPE_CLASS) { @@ -973,6 +972,13 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg) case BUILD_LIST: case BUILD_SET: return 1-oparg; + case BUILD_LIST_UNPACK: + case BUILD_TUPLE_UNPACK: + case BUILD_SET_UNPACK: + case BUILD_MAP_UNPACK: + return 1 - oparg; + case BUILD_MAP_UNPACK_WITH_CALL: + return 1 - (oparg & 0xFF); case BUILD_MAP: return 1; case LOAD_ATTR: @@ -1821,9 +1827,7 @@ compiler_class(struct compiler *c, stmt_ty s) /* 5. generate the rest of the code for the call */ if (!compiler_call_helper(c, 2, s->v.ClassDef.bases, - s->v.ClassDef.keywords, - s->v.ClassDef.starargs, - s->v.ClassDef.kwargs)) + s->v.ClassDef.keywords)) return 0; /* 6. apply decorators */ @@ -2871,67 +2875,145 @@ compiler_boolop(struct compiler *c, expr_ty e) } static int -compiler_list(struct compiler *c, expr_ty e) +starunpack_helper(struct compiler *c, asdl_seq *elts, + int single_op, int inner_op, int outer_op) { - Py_ssize_t n = asdl_seq_LEN(e->v.List.elts); - if (e->v.List.ctx == Store) { - int i, seen_star = 0; - for (i = 0; i < n; i++) { - expr_ty elt = asdl_seq_GET(e->v.List.elts, i); - if (elt->kind == Starred_kind && !seen_star) { - if ((i >= (1 << 8)) || - (n-i-1 >= (INT_MAX >> 8))) - return compiler_error(c, - "too many expressions in " - "star-unpacking assignment"); - ADDOP_I(c, UNPACK_EX, (i + ((n-i-1) << 8))); - seen_star = 1; - asdl_seq_SET(e->v.List.elts, i, elt->v.Starred.value); - } else if (elt->kind == Starred_kind) { - return compiler_error(c, - "two starred expressions in assignment"); + Py_ssize_t n = asdl_seq_LEN(elts); + Py_ssize_t i, nsubitems = 0, nseen = 0; + for (i = 0; i < n; i++) { + expr_ty elt = asdl_seq_GET(elts, i); + if (elt->kind == Starred_kind) { + if (nseen) { + ADDOP_I(c, inner_op, nseen); + nseen = 0; + nsubitems++; } + VISIT(c, expr, elt->v.Starred.value); + nsubitems++; + } + else { + VISIT(c, expr, elt); + nseen++; + } + } + if (nsubitems) { + if (nseen) { + ADDOP_I(c, inner_op, nseen); + nsubitems++; + } + ADDOP_I(c, outer_op, nsubitems); + } + else + ADDOP_I(c, single_op, nseen); + return 1; +} + +static int +assignment_helper(struct compiler *c, asdl_seq *elts) +{ + Py_ssize_t n = asdl_seq_LEN(elts); + Py_ssize_t i; + int seen_star = 0; + for (i = 0; i < n; i++) { + expr_ty elt = asdl_seq_GET(elts, i); + if (elt->kind == Starred_kind && !seen_star) { + if ((i >= (1 << 8)) || + (n-i-1 >= (INT_MAX >> 8))) + return compiler_error(c, + "too many expressions in " + "star-unpacking assignment"); + ADDOP_I(c, UNPACK_EX, (i + ((n-i-1) << 8))); + seen_star = 1; + asdl_seq_SET(elts, i, elt->v.Starred.value); } - if (!seen_star) { - ADDOP_I(c, UNPACK_SEQUENCE, n); + else if (elt->kind == Starred_kind) { + return compiler_error(c, + "two starred expressions in assignment"); } } - VISIT_SEQ(c, expr, e->v.List.elts); - if (e->v.List.ctx == Load) { - ADDOP_I(c, BUILD_LIST, n); + if (!seen_star) { + ADDOP_I(c, UNPACK_SEQUENCE, n); + } + VISIT_SEQ(c, expr, elts); + return 1; +} + +static int +compiler_list(struct compiler *c, expr_ty e) +{ + asdl_seq *elts = e->v.List.elts; + if (e->v.List.ctx == Store) { + return assignment_helper(c, elts); + } + else if (e->v.List.ctx == Load) { + return starunpack_helper(c, elts, + BUILD_LIST, BUILD_TUPLE, BUILD_LIST_UNPACK); } + else + VISIT_SEQ(c, expr, elts); return 1; } static int compiler_tuple(struct compiler *c, expr_ty e) { - Py_ssize_t n = asdl_seq_LEN(e->v.Tuple.elts); + asdl_seq *elts = e->v.Tuple.elts; if (e->v.Tuple.ctx == Store) { - int i, seen_star = 0; - for (i = 0; i < n; i++) { - expr_ty elt = asdl_seq_GET(e->v.Tuple.elts, i); - if (elt->kind == Starred_kind && !seen_star) { - if ((i >= (1 << 8)) || - (n-i-1 >= (INT_MAX >> 8))) - return compiler_error(c, - "too many expressions in " - "star-unpacking assignment"); - ADDOP_I(c, UNPACK_EX, (i + ((n-i-1) << 8))); - seen_star = 1; - asdl_seq_SET(e->v.Tuple.elts, i, elt->v.Starred.value); - } else if (elt->kind == Starred_kind) { - return compiler_error(c, - "two starred expressions in assignment"); - } + return assignment_helper(c, elts); + } + else if (e->v.Tuple.ctx == Load) { + return starunpack_helper(c, elts, + BUILD_TUPLE, BUILD_TUPLE, BUILD_TUPLE_UNPACK); + } + else + VISIT_SEQ(c, expr, elts); + return 1; +} + +static int +compiler_set(struct compiler *c, expr_ty e) +{ + return starunpack_helper(c, e->v.Set.elts, BUILD_SET, + BUILD_SET, BUILD_SET_UNPACK); +} + +static int +compiler_dict(struct compiler *c, expr_ty e) +{ + Py_ssize_t i, n, containers, elements; + int is_unpacking = 0; + n = asdl_seq_LEN(e->v.Dict.values); + containers = 0; + elements = 0; + for (i = 0; i < n; i++) { + is_unpacking = (expr_ty)asdl_seq_GET(e->v.Dict.keys, i) == NULL; + if (elements == 0xFFFF || (elements && is_unpacking)) { + ADDOP_I(c, BUILD_MAP, elements); + containers++; + elements = 0; } - if (!seen_star) { - ADDOP_I(c, UNPACK_SEQUENCE, n); + if (is_unpacking) { + VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Dict.values, i)); + containers++; } + else { + VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Dict.values, i)); + VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Dict.keys, i)); + elements++; + } + } + if (elements || containers == 0) { + ADDOP_I(c, BUILD_MAP, elements); + containers++; } - VISIT_SEQ(c, expr, e->v.Tuple.elts); - if (e->v.Tuple.ctx == Load) { - ADDOP_I(c, BUILD_TUPLE, n); + /* If there is more than one dict, they need to be merged into a new + * dict. If there is one dict and it's an unpacking, then it needs + * to be copied into a new dict." */ + while (containers > 1 || is_unpacking) { + int oparg = containers < 255 ? containers : 255; + ADDOP_I(c, BUILD_MAP_UNPACK, oparg); + containers -= (oparg - 1); + is_unpacking = 0; } return 1; } @@ -2987,9 +3069,7 @@ compiler_call(struct compiler *c, expr_ty e) VISIT(c, expr, e->v.Call.func); return compiler_call_helper(c, 0, e->v.Call.args, - e->v.Call.keywords, - e->v.Call.starargs, - e->v.Call.kwargs); + e->v.Call.keywords); } /* shared code between compiler_call and compiler_class */ @@ -2997,26 +3077,102 @@ static int compiler_call_helper(struct compiler *c, Py_ssize_t n, /* Args already pushed */ asdl_seq *args, - asdl_seq *keywords, - expr_ty starargs, - expr_ty kwargs) + asdl_seq *keywords) { int code = 0; - - n += asdl_seq_LEN(args); - VISIT_SEQ(c, expr, args); - if (keywords) { - VISIT_SEQ(c, keyword, keywords); - n |= asdl_seq_LEN(keywords) << 8; + Py_ssize_t nelts, i, nseen, nkw; + + /* the number of tuples and dictionaries on the stack */ + Py_ssize_t nsubargs = 0, nsubkwargs = 0; + + nkw = 0; + nseen = 0; /* the number of positional arguments on the stack */ + nelts = asdl_seq_LEN(args); + for (i = 0; i < nelts; i++) { + expr_ty elt = asdl_seq_GET(args, i); + if (elt->kind == Starred_kind) { + /* A star-arg. If we've seen positional arguments, + pack the positional arguments into a + tuple. */ + if (nseen) { + ADDOP_I(c, BUILD_TUPLE, nseen); + nseen = 0; + nsubargs++; + } + VISIT(c, expr, elt->v.Starred.value); + nsubargs++; + } + else if (nsubargs) { + /* We've seen star-args already, so we + count towards items-to-pack-into-tuple. */ + VISIT(c, expr, elt); + nseen++; + } + else { + /* Positional arguments before star-arguments + are left on the stack. */ + VISIT(c, expr, elt); + n++; + } + } + if (nseen) { + /* Pack up any trailing positional arguments. */ + ADDOP_I(c, BUILD_TUPLE, nseen); + nsubargs++; } - if (starargs) { - VISIT(c, expr, starargs); + if (nsubargs) { code |= 1; + if (nsubargs > 1) { + /* If we ended up with more than one stararg, we need + to concatenate them into a single sequence. */ + ADDOP_I(c, BUILD_LIST_UNPACK, nsubargs); + } + } + + /* Same dance again for keyword arguments */ + nseen = 0; /* the number of keyword arguments on the stack following */ + nelts = asdl_seq_LEN(keywords); + for (i = 0; i < nelts; i++) { + keyword_ty kw = asdl_seq_GET(keywords, i); + if (kw->arg == NULL) { + /* A keyword argument unpacking. */ + if (nseen) { + ADDOP_I(c, BUILD_MAP, nseen); + nseen = 0; + nsubkwargs++; + } + VISIT(c, expr, kw->value); + nsubkwargs++; + } + else if (nsubkwargs) { + /* A keyword argument and we already have a dict. */ + VISIT(c, expr, kw->value); + ADDOP_O(c, LOAD_CONST, kw->arg, consts); + nseen++; + } + else { + /* keyword argument */ + VISIT(c, keyword, kw) + nkw++; + } } - if (kwargs) { - VISIT(c, expr, kwargs); + if (nseen) { + /* Pack up any trailing keyword arguments. */ + ADDOP_I(c, BUILD_MAP, nseen); + nsubkwargs++; + } + if (nsubkwargs) { code |= 2; + if (nsubkwargs > 1) { + /* Pack it all up */ + int function_pos = n + (code & 1) + nkw + 1; + ADDOP_I(c, BUILD_MAP_UNPACK_WITH_CALL, nsubkwargs | (function_pos << 8)); + } } + assert(n < 1<<8); + assert(nkw < 1<<24); + n |= nkw << 8; + switch (code) { case 0: ADDOP_I(c, CALL_FUNCTION, n); @@ -3141,8 +3297,9 @@ compiler_comprehension_generator(struct compiler *c, } static int -compiler_comprehension(struct compiler *c, expr_ty e, int type, identifier name, - asdl_seq *generators, expr_ty elt, expr_ty val) +compiler_comprehension(struct compiler *c, expr_ty e, int type, + identifier name, asdl_seq *generators, expr_ty elt, + expr_ty val) { PyCodeObject *co = NULL; expr_ty outermost_iter; @@ -3399,8 +3556,6 @@ compiler_with(struct compiler *c, stmt_ty s, int pos) static int compiler_visit_expr(struct compiler *c, expr_ty e) { - Py_ssize_t i, n; - /* If expr e has a different line number than the last expr/stmt, set a new line number for the next instruction. */ @@ -3427,23 +3582,9 @@ compiler_visit_expr(struct compiler *c, expr_ty e) case IfExp_kind: return compiler_ifexp(c, e); case Dict_kind: - n = asdl_seq_LEN(e->v.Dict.values); - /* BUILD_MAP parameter is only used to preallocate the dictionary, - it doesn't need to be exact */ - ADDOP_I(c, BUILD_MAP, (n>0xFFFF ? 0xFFFF : n)); - for (i = 0; i < n; i++) { - VISIT(c, expr, - (expr_ty)asdl_seq_GET(e->v.Dict.values, i)); - VISIT(c, expr, - (expr_ty)asdl_seq_GET(e->v.Dict.keys, i)); - ADDOP(c, STORE_MAP); - } - break; + return compiler_dict(c, e); case Set_kind: - n = asdl_seq_LEN(e->v.Set.elts); - VISIT_SEQ(c, expr, e->v.Set.elts); - ADDOP_I(c, BUILD_SET, n); - break; + return compiler_set(c, e); case GeneratorExp_kind: return compiler_genexp(c, e); case ListComp_kind: @@ -3554,7 +3695,7 @@ compiler_visit_expr(struct compiler *c, expr_ty e) "starred assignment target must be in a list or tuple"); default: return compiler_error(c, - "can use starred expression only as assignment target"); + "can't use starred expression here"); } break; case Name_kind: diff --git a/Python/graminit.c b/Python/graminit.c index 9f79d59..1028ffa 100644 --- a/Python/graminit.c +++ b/Python/graminit.c @@ -1569,60 +1569,78 @@ static state states_71[3] = { {2, arcs_71_1}, {2, arcs_71_2}, }; -static arc arcs_72_0[1] = { +static arc arcs_72_0[3] = { {24, 1}, + {32, 2}, + {48, 3}, }; static arc arcs_72_1[4] = { - {25, 2}, - {159, 3}, - {30, 4}, + {25, 4}, + {159, 5}, + {30, 6}, {0, 1}, }; static arc arcs_72_2[1] = { - {24, 5}, + {104, 7}, }; -static arc arcs_72_3[1] = { +static arc arcs_72_3[3] = { + {159, 5}, + {30, 6}, {0, 3}, }; -static arc arcs_72_4[2] = { - {24, 6}, - {0, 4}, +static arc arcs_72_4[1] = { + {24, 7}, }; -static arc arcs_72_5[3] = { - {159, 3}, - {30, 7}, +static arc arcs_72_5[1] = { {0, 5}, }; -static arc arcs_72_6[2] = { - {30, 4}, +static arc arcs_72_6[3] = { + {24, 8}, + {48, 8}, {0, 6}, }; -static arc arcs_72_7[2] = { - {24, 8}, +static arc arcs_72_7[3] = { + {159, 5}, + {30, 9}, {0, 7}, }; -static arc arcs_72_8[1] = { - {25, 9}, +static arc arcs_72_8[2] = { + {30, 6}, + {0, 8}, }; -static arc arcs_72_9[1] = { +static arc arcs_72_9[3] = { {24, 10}, + {32, 11}, + {0, 9}, }; -static arc arcs_72_10[2] = { - {30, 7}, - {0, 10}, +static arc arcs_72_10[1] = { + {25, 12}, +}; +static arc arcs_72_11[1] = { + {104, 13}, +}; +static arc arcs_72_12[1] = { + {24, 13}, }; -static state states_72[11] = { - {1, arcs_72_0}, +static arc arcs_72_13[2] = { + {30, 9}, + {0, 13}, +}; +static state states_72[14] = { + {3, arcs_72_0}, {4, arcs_72_1}, {1, arcs_72_2}, - {1, arcs_72_3}, - {2, arcs_72_4}, - {3, arcs_72_5}, - {2, arcs_72_6}, - {2, arcs_72_7}, - {1, arcs_72_8}, - {1, arcs_72_9}, - {2, arcs_72_10}, + {3, arcs_72_3}, + {1, arcs_72_4}, + {1, arcs_72_5}, + {3, arcs_72_6}, + {3, arcs_72_7}, + {2, arcs_72_8}, + {3, arcs_72_9}, + {1, arcs_72_10}, + {1, arcs_72_11}, + {1, arcs_72_12}, + {2, arcs_72_13}, }; static arc arcs_73_0[1] = { {163, 1}, @@ -1660,67 +1678,47 @@ static state states_73[8] = { {1, arcs_73_6}, {1, arcs_73_7}, }; -static arc arcs_74_0[3] = { +static arc arcs_74_0[1] = { {164, 1}, - {31, 2}, - {32, 3}, }; static arc arcs_74_1[2] = { - {30, 4}, + {30, 2}, {0, 1}, }; -static arc arcs_74_2[1] = { - {24, 5}, -}; -static arc arcs_74_3[1] = { - {24, 6}, -}; -static arc arcs_74_4[4] = { +static arc arcs_74_2[2] = { {164, 1}, - {31, 2}, - {32, 3}, - {0, 4}, -}; -static arc arcs_74_5[2] = { - {30, 7}, - {0, 5}, -}; -static arc arcs_74_6[1] = { - {0, 6}, -}; -static arc arcs_74_7[2] = { - {164, 5}, - {32, 3}, + {0, 2}, }; -static state states_74[8] = { - {3, arcs_74_0}, +static state states_74[3] = { + {1, arcs_74_0}, {2, arcs_74_1}, - {1, arcs_74_2}, - {1, arcs_74_3}, - {4, arcs_74_4}, - {2, arcs_74_5}, - {1, arcs_74_6}, - {2, arcs_74_7}, -}; -static arc arcs_75_0[1] = { + {2, arcs_74_2}, +}; +static arc arcs_75_0[3] = { {24, 1}, + {32, 2}, + {48, 3}, }; static arc arcs_75_1[3] = { - {159, 2}, - {29, 3}, + {159, 3}, + {29, 4}, {0, 1}, }; static arc arcs_75_2[1] = { - {0, 2}, + {104, 3}, }; static arc arcs_75_3[1] = { - {24, 2}, + {0, 3}, }; -static state states_75[4] = { - {1, arcs_75_0}, +static arc arcs_75_4[1] = { + {24, 3}, +}; +static state states_75[5] = { + {3, arcs_75_0}, {3, arcs_75_1}, {1, arcs_75_2}, {1, arcs_75_3}, + {1, arcs_75_4}, }; static arc arcs_76_0[2] = { {159, 1}, @@ -1964,14 +1962,14 @@ static dfa dfas[82] = { "\000\040\040\200\000\000\000\000\000\000\001\000\000\000\000\000\000\014\241\174\000\000"}, {327, "testlist", 0, 3, states_71, "\000\040\040\000\000\000\000\000\000\000\001\000\000\000\041\000\000\014\241\174\000\000"}, - {328, "dictorsetmaker", 0, 11, states_72, - "\000\040\040\000\000\000\000\000\000\000\001\000\000\000\041\000\000\014\241\174\000\000"}, + {328, "dictorsetmaker", 0, 14, states_72, + "\000\040\040\200\001\000\000\000\000\000\001\000\000\000\041\000\000\014\241\174\000\000"}, {329, "classdef", 0, 8, states_73, "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000"}, - {330, "arglist", 0, 8, states_74, + {330, "arglist", 0, 3, states_74, + "\000\040\040\200\001\000\000\000\000\000\001\000\000\000\041\000\000\014\241\174\000\000"}, + {331, "argument", 0, 5, states_75, "\000\040\040\200\001\000\000\000\000\000\001\000\000\000\041\000\000\014\241\174\000\000"}, - {331, "argument", 0, 4, states_75, - "\000\040\040\000\000\000\000\000\000\000\001\000\000\000\041\000\000\014\241\174\000\000"}, {332, "comp_iter", 0, 2, states_76, "\000\000\000\000\000\000\000\000\000\000\000\040\002\000\000\000\000\000\000\000\000\000"}, {333, "comp_for", 0, 6, states_77, diff --git a/Python/importlib_external.h b/Python/importlib_external.h index 4fe02b1..c853f04 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -261,7 +261,7 @@ const unsigned char _Py_M__importlib_external[] = { 5,0,0,0,218,13,95,119,114,105,116,101,95,97,116,111, 109,105,99,99,0,0,0,115,26,0,0,0,0,5,24,1, 9,1,33,1,3,3,21,1,19,1,20,1,13,1,3,1, - 17,1,13,1,5,1,114,55,0,0,0,105,248,12,0,0, + 17,1,13,1,5,1,114,55,0,0,0,105,2,13,0,0, 233,2,0,0,0,114,13,0,0,0,115,2,0,0,0,13, 10,90,11,95,95,112,121,99,97,99,104,101,95,95,122,4, 111,112,116,45,122,3,46,112,121,122,4,46,112,121,99,78, @@ -371,7 +371,7 @@ const unsigned char _Py_M__importlib_external[] = { 90,15,97,108,109,111,115,116,95,102,105,108,101,110,97,109, 101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, 218,17,99,97,99,104,101,95,102,114,111,109,95,115,111,117, - 114,99,101,240,0,0,0,115,46,0,0,0,0,18,12,1, + 114,99,101,241,0,0,0,115,46,0,0,0,0,18,12,1, 9,1,7,1,12,1,6,1,12,1,18,1,18,1,24,1, 12,1,12,1,12,1,36,1,12,1,18,1,9,2,12,1, 12,1,12,1,12,1,21,1,21,1,114,79,0,0,0,99, @@ -450,7 +450,7 @@ const unsigned char _Py_M__importlib_external[] = { 118,101,108,90,13,98,97,115,101,95,102,105,108,101,110,97, 109,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0, 0,218,17,115,111,117,114,99,101,95,102,114,111,109,95,99, - 97,99,104,101,28,1,0,0,115,44,0,0,0,0,9,18, + 97,99,104,101,29,1,0,0,115,44,0,0,0,0,9,18, 1,12,1,18,1,18,1,12,1,9,1,15,1,15,1,12, 1,9,1,15,1,12,1,22,1,15,1,9,1,12,1,22, 1,12,1,9,1,12,1,19,1,114,85,0,0,0,99,1, @@ -487,7 +487,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,114,36,0,0,0,90,9,101,120,116,101,110,115,105,111, 110,218,11,115,111,117,114,99,101,95,112,97,116,104,114,4, 0,0,0,114,4,0,0,0,114,5,0,0,0,218,15,95, - 103,101,116,95,115,111,117,114,99,101,102,105,108,101,61,1, + 103,101,116,95,115,111,117,114,99,101,102,105,108,101,62,1, 0,0,115,20,0,0,0,0,7,18,1,4,1,24,1,35, 1,4,1,3,1,16,1,19,1,21,1,114,91,0,0,0, 99,1,0,0,0,0,0,0,0,1,0,0,0,11,0,0, @@ -502,7 +502,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,114,79,0,0,0,114,66,0,0,0,114,74,0,0,0, 41,1,218,8,102,105,108,101,110,97,109,101,114,4,0,0, 0,114,4,0,0,0,114,5,0,0,0,218,11,95,103,101, - 116,95,99,97,99,104,101,100,80,1,0,0,115,16,0,0, + 116,95,99,97,99,104,101,100,81,1,0,0,115,16,0,0, 0,0,1,21,1,3,1,14,1,13,1,8,1,21,1,4, 2,114,95,0,0,0,99,1,0,0,0,0,0,0,0,2, 0,0,0,11,0,0,0,67,0,0,0,115,60,0,0,0, @@ -517,7 +517,7 @@ const unsigned char _Py_M__importlib_external[] = { 39,0,0,0,114,41,0,0,0,114,40,0,0,0,41,2, 114,35,0,0,0,114,42,0,0,0,114,4,0,0,0,114, 4,0,0,0,114,5,0,0,0,218,10,95,99,97,108,99, - 95,109,111,100,101,92,1,0,0,115,12,0,0,0,0,2, + 95,109,111,100,101,93,1,0,0,115,12,0,0,0,0,2, 3,1,19,1,13,1,11,3,10,1,114,97,0,0,0,218, 9,118,101,114,98,111,115,105,116,121,114,29,0,0,0,99, 1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0, @@ -538,7 +538,7 @@ const unsigned char _Py_M__importlib_external[] = { 116,100,101,114,114,41,3,114,75,0,0,0,114,98,0,0, 0,218,4,97,114,103,115,114,4,0,0,0,114,4,0,0, 0,114,5,0,0,0,218,16,95,118,101,114,98,111,115,101, - 95,109,101,115,115,97,103,101,104,1,0,0,115,8,0,0, + 95,109,101,115,115,97,103,101,105,1,0,0,115,8,0,0, 0,0,2,18,1,15,1,10,1,114,105,0,0,0,99,1, 0,0,0,0,0,0,0,3,0,0,0,11,0,0,0,3, 0,0,0,115,84,0,0,0,100,1,0,135,0,0,102,1, @@ -577,7 +577,7 @@ const unsigned char _Py_M__importlib_external[] = { 6,107,119,97,114,103,115,41,1,218,6,109,101,116,104,111, 100,114,4,0,0,0,114,5,0,0,0,218,19,95,99,104, 101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,114, - 120,1,0,0,115,10,0,0,0,0,1,12,1,12,1,15, + 121,1,0,0,115,10,0,0,0,0,1,12,1,12,1,15, 1,22,1,122,40,95,99,104,101,99,107,95,110,97,109,101, 46,60,108,111,99,97,108,115,62,46,95,99,104,101,99,107, 95,110,97,109,101,95,119,114,97,112,112,101,114,99,2,0, @@ -596,7 +596,7 @@ const unsigned char _Py_M__importlib_external[] = { 218,8,95,95,100,105,99,116,95,95,218,6,117,112,100,97, 116,101,41,3,90,3,110,101,119,90,3,111,108,100,114,52, 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,218,5,95,119,114,97,112,130,1,0,0,115,8,0, + 0,0,218,5,95,119,114,97,112,131,1,0,0,115,8,0, 0,0,0,1,25,1,15,1,29,1,122,26,95,99,104,101, 99,107,95,110,97,109,101,46,60,108,111,99,97,108,115,62, 46,95,119,114,97,112,41,3,218,10,95,98,111,111,116,115, @@ -604,7 +604,7 @@ const unsigned char _Py_M__importlib_external[] = { 114,114,111,114,41,3,114,109,0,0,0,114,110,0,0,0, 114,120,0,0,0,114,4,0,0,0,41,1,114,109,0,0, 0,114,5,0,0,0,218,11,95,99,104,101,99,107,95,110, - 97,109,101,112,1,0,0,115,14,0,0,0,0,8,21,6, + 97,109,101,113,1,0,0,115,14,0,0,0,0,8,21,6, 3,1,13,1,13,2,17,5,13,1,114,123,0,0,0,99, 2,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0, 67,0,0,0,115,84,0,0,0,124,0,0,106,0,0,124, @@ -633,7 +633,7 @@ const unsigned char _Py_M__importlib_external[] = { 97,109,101,218,6,108,111,97,100,101,114,218,8,112,111,114, 116,105,111,110,115,218,3,109,115,103,114,4,0,0,0,114, 4,0,0,0,114,5,0,0,0,218,17,95,102,105,110,100, - 95,109,111,100,117,108,101,95,115,104,105,109,139,1,0,0, + 95,109,111,100,117,108,101,95,115,104,105,109,140,1,0,0, 115,10,0,0,0,0,10,21,1,24,1,6,1,29,1,114, 130,0,0,0,99,2,0,0,0,0,0,0,0,4,0,0, 0,3,0,0,0,67,0,0,0,115,87,0,0,0,116,0, @@ -657,7 +657,7 @@ const unsigned char _Py_M__importlib_external[] = { 4,114,108,0,0,0,114,126,0,0,0,218,4,115,112,101, 99,218,6,109,111,100,117,108,101,114,4,0,0,0,114,4, 0,0,0,114,5,0,0,0,218,17,95,108,111,97,100,95, - 109,111,100,117,108,101,95,115,104,105,109,157,1,0,0,115, + 109,111,100,117,108,101,95,115,104,105,109,158,1,0,0,115, 12,0,0,0,0,6,15,1,15,1,13,1,16,1,11,2, 114,135,0,0,0,99,4,0,0,0,0,0,0,0,11,0, 0,0,19,0,0,0,67,0,0,0,115,228,1,0,0,105, @@ -742,7 +742,7 @@ const unsigned char _Py_M__importlib_external[] = { 115,111,117,114,99,101,95,115,105,122,101,114,4,0,0,0, 114,4,0,0,0,114,5,0,0,0,218,25,95,118,97,108, 105,100,97,116,101,95,98,121,116,101,99,111,100,101,95,104, - 101,97,100,101,114,172,1,0,0,115,76,0,0,0,0,11, + 101,97,100,101,114,173,1,0,0,115,76,0,0,0,0,11, 6,1,12,1,13,3,6,1,12,1,10,1,16,1,16,1, 16,1,12,1,18,1,10,1,18,1,18,1,15,1,10,1, 15,1,18,1,15,1,10,1,12,1,12,1,3,1,20,1, @@ -773,7 +773,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,114,89,0,0,0,114,90,0,0,0,218,4,99,111,100, 101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, 218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,99, - 111,100,101,227,1,0,0,115,16,0,0,0,0,2,15,1, + 111,100,101,228,1,0,0,115,16,0,0,0,0,2,15,1, 15,1,13,1,12,1,16,1,4,2,18,1,114,152,0,0, 0,114,59,0,0,0,99,3,0,0,0,0,0,0,0,4, 0,0,0,3,0,0,0,67,0,0,0,115,76,0,0,0, @@ -793,7 +793,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,114,138,0,0,0,114,145,0,0,0,114,53,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, 218,17,95,99,111,100,101,95,116,111,95,98,121,116,101,99, - 111,100,101,239,1,0,0,115,10,0,0,0,0,3,12,1, + 111,100,101,240,1,0,0,115,10,0,0,0,0,3,12,1, 19,1,19,1,22,1,114,155,0,0,0,99,1,0,0,0, 0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,0, 115,89,0,0,0,100,1,0,100,2,0,108,0,0,125,1, @@ -821,7 +821,7 @@ const unsigned char _Py_M__importlib_external[] = { 97,100,108,105,110,101,218,8,101,110,99,111,100,105,110,103, 90,15,110,101,119,108,105,110,101,95,100,101,99,111,100,101, 114,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 218,13,100,101,99,111,100,101,95,115,111,117,114,99,101,249, + 218,13,100,101,99,111,100,101,95,115,111,117,114,99,101,250, 1,0,0,115,10,0,0,0,0,5,12,1,18,1,15,1, 18,1,114,160,0,0,0,218,6,111,114,105,103,105,110,218, 10,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0, @@ -852,7 +852,7 @@ const unsigned char _Py_M__importlib_external[] = { 101,83,112,101,99,41,5,114,106,0,0,0,114,127,0,0, 0,114,161,0,0,0,114,162,0,0,0,90,6,115,101,97, 114,99,104,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,114,131,0,0,0,7,2,0,0,115,28,0,0,0, + 0,0,114,131,0,0,0,8,2,0,0,115,28,0,0,0, 0,2,15,1,12,1,16,1,18,1,15,1,7,2,12,1, 15,1,3,1,19,1,13,1,14,3,6,2,114,131,0,0, 0,114,127,0,0,0,114,164,0,0,0,99,2,0,0,0, @@ -914,7 +914,7 @@ const unsigned char _Py_M__importlib_external[] = { 100,101,114,95,99,108,97,115,115,218,8,115,117,102,102,105, 120,101,115,114,162,0,0,0,90,7,100,105,114,110,97,109, 101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,165,0,0,0,32,2,0,0,115,60,0,0,0,0,12, + 114,165,0,0,0,33,2,0,0,115,60,0,0,0,0,12, 12,4,6,1,15,2,3,1,19,1,13,1,5,8,24,1, 9,3,12,1,22,1,21,1,15,1,9,1,5,2,4,3, 12,2,15,1,3,1,19,1,13,1,5,2,6,1,12,2, @@ -954,7 +954,7 @@ const unsigned char _Py_M__importlib_external[] = { 79,67,65,76,95,77,65,67,72,73,78,69,41,2,218,3, 99,108,115,218,3,107,101,121,114,4,0,0,0,114,4,0, 0,0,114,5,0,0,0,218,14,95,111,112,101,110,95,114, - 101,103,105,115,116,114,121,110,2,0,0,115,8,0,0,0, + 101,103,105,115,116,114,121,111,2,0,0,115,8,0,0,0, 0,2,3,1,23,1,13,1,122,36,87,105,110,100,111,119, 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46, 95,111,112,101,110,95,114,101,103,105,115,116,114,121,99,2, @@ -981,7 +981,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,0,90,4,104,107,101,121,218,8,102,105,108,101,112, 97,116,104,114,4,0,0,0,114,4,0,0,0,114,5,0, 0,0,218,16,95,115,101,97,114,99,104,95,114,101,103,105, - 115,116,114,121,117,2,0,0,115,22,0,0,0,0,2,9, + 115,116,114,121,118,2,0,0,115,22,0,0,0,0,2,9, 1,12,2,9,1,15,1,22,1,3,1,18,1,28,1,13, 1,9,1,122,38,87,105,110,100,111,119,115,82,101,103,105, 115,116,114,121,70,105,110,100,101,114,46,95,115,101,97,114, @@ -1004,7 +1004,7 @@ const unsigned char _Py_M__importlib_external[] = { 6,116,97,114,103,101,116,114,181,0,0,0,114,127,0,0, 0,114,171,0,0,0,114,133,0,0,0,114,4,0,0,0, 114,4,0,0,0,114,5,0,0,0,218,9,102,105,110,100, - 95,115,112,101,99,132,2,0,0,115,24,0,0,0,0,2, + 95,115,112,101,99,133,2,0,0,115,24,0,0,0,0,2, 15,1,12,1,4,1,3,1,14,1,13,1,9,1,22,1, 21,1,21,1,9,1,122,31,87,105,110,100,111,119,115,82, 101,103,105,115,116,114,121,70,105,110,100,101,114,46,102,105, @@ -1023,7 +1023,7 @@ const unsigned char _Py_M__importlib_external[] = { 2,114,184,0,0,0,114,127,0,0,0,41,4,114,174,0, 0,0,114,126,0,0,0,114,35,0,0,0,114,133,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 218,11,102,105,110,100,95,109,111,100,117,108,101,147,2,0, + 218,11,102,105,110,100,95,109,111,100,117,108,101,148,2,0, 0,115,8,0,0,0,0,7,18,1,12,1,7,2,122,33, 87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,70, 105,110,100,101,114,46,102,105,110,100,95,109,111,100,117,108, @@ -1033,7 +1033,7 @@ const unsigned char _Py_M__importlib_external[] = { 104,111,100,114,176,0,0,0,114,182,0,0,0,114,184,0, 0,0,114,185,0,0,0,114,4,0,0,0,114,4,0,0, 0,114,4,0,0,0,114,5,0,0,0,114,172,0,0,0, - 98,2,0,0,115,20,0,0,0,12,2,6,3,6,3,6, + 99,2,0,0,115,20,0,0,0,12,2,6,3,6,3,6, 2,6,2,18,7,18,15,3,1,21,14,3,1,114,172,0, 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, 0,0,0,64,0,0,0,115,64,0,0,0,101,0,0,90, @@ -1070,7 +1070,7 @@ const unsigned char _Py_M__importlib_external[] = { 114,126,0,0,0,114,94,0,0,0,90,13,102,105,108,101, 110,97,109,101,95,98,97,115,101,90,9,116,97,105,108,95, 110,97,109,101,114,4,0,0,0,114,4,0,0,0,114,5, - 0,0,0,114,162,0,0,0,166,2,0,0,115,8,0,0, + 0,0,0,114,162,0,0,0,167,2,0,0,115,8,0,0, 0,0,3,25,1,22,1,19,1,122,24,95,76,111,97,100, 101,114,66,97,115,105,99,115,46,105,115,95,112,97,99,107, 97,103,101,99,2,0,0,0,0,0,0,0,2,0,0,0, @@ -1080,7 +1080,7 @@ const unsigned char _Py_M__importlib_external[] = { 111,100,117,108,101,32,99,114,101,97,116,105,111,110,46,78, 114,4,0,0,0,41,2,114,108,0,0,0,114,133,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 218,13,99,114,101,97,116,101,95,109,111,100,117,108,101,174, + 218,13,99,114,101,97,116,101,95,109,111,100,117,108,101,175, 2,0,0,115,0,0,0,0,122,27,95,76,111,97,100,101, 114,66,97,115,105,99,115,46,99,114,101,97,116,101,95,109, 111,100,117,108,101,99,2,0,0,0,0,0,0,0,3,0, @@ -1102,14 +1102,14 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,0,41,3,114,108,0,0,0,114,134,0,0,0,114, 151,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, 0,0,0,218,11,101,120,101,99,95,109,111,100,117,108,101, - 177,2,0,0,115,10,0,0,0,0,2,18,1,12,1,9, + 178,2,0,0,115,10,0,0,0,0,2,18,1,12,1,9, 1,15,1,122,25,95,76,111,97,100,101,114,66,97,115,105, 99,115,46,101,120,101,99,95,109,111,100,117,108,101,78,41, 9,114,112,0,0,0,114,111,0,0,0,114,113,0,0,0, 114,114,0,0,0,114,162,0,0,0,114,189,0,0,0,114, 193,0,0,0,114,135,0,0,0,218,11,108,111,97,100,95, 109,111,100,117,108,101,114,4,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,114,187,0,0,0,161, + 114,4,0,0,0,114,5,0,0,0,114,187,0,0,0,162, 2,0,0,115,10,0,0,0,12,3,6,2,12,8,12,3, 12,8,114,187,0,0,0,99,0,0,0,0,0,0,0,0, 0,0,0,0,4,0,0,0,64,0,0,0,115,106,0,0, @@ -1137,1091 +1137,1153 @@ const unsigned char _Py_M__importlib_external[] = { 32,32,32,32,32,78,41,1,218,7,73,79,69,114,114,111, 114,41,2,114,108,0,0,0,114,35,0,0,0,114,4,0, 0,0,114,4,0,0,0,114,5,0,0,0,218,10,112,97, - 116,104,95,109,116,105,109,101,190,2,0,0,115,2,0,0, + 116,104,95,109,116,105,109,101,191,2,0,0,115,2,0,0, 0,0,6,122,23,83,111,117,114,99,101,76,111,97,100,101, 114,46,112,97,116,104,95,109,116,105,109,101,99,2,0,0, 0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,0, - 0,115,20,0,0,0,105,1,0,124,0,0,106,0,0,124, - 1,0,131,1,0,100,1,0,54,83,41,2,97,170,1,0, - 0,79,112,116,105,111,110,97,108,32,109,101,116,104,111,100, - 32,114,101,116,117,114,110,105,110,103,32,97,32,109,101,116, - 97,100,97,116,97,32,100,105,99,116,32,102,111,114,32,116, - 104,101,32,115,112,101,99,105,102,105,101,100,32,112,97,116, - 104,10,32,32,32,32,32,32,32,32,116,111,32,98,121,32, - 116,104,101,32,112,97,116,104,32,40,115,116,114,41,46,10, - 32,32,32,32,32,32,32,32,80,111,115,115,105,98,108,101, - 32,107,101,121,115,58,10,32,32,32,32,32,32,32,32,45, - 32,39,109,116,105,109,101,39,32,40,109,97,110,100,97,116, - 111,114,121,41,32,105,115,32,116,104,101,32,110,117,109,101, - 114,105,99,32,116,105,109,101,115,116,97,109,112,32,111,102, - 32,108,97,115,116,32,115,111,117,114,99,101,10,32,32,32, - 32,32,32,32,32,32,32,99,111,100,101,32,109,111,100,105, - 102,105,99,97,116,105,111,110,59,10,32,32,32,32,32,32, - 32,32,45,32,39,115,105,122,101,39,32,40,111,112,116,105, - 111,110,97,108,41,32,105,115,32,116,104,101,32,115,105,122, - 101,32,105,110,32,98,121,116,101,115,32,111,102,32,116,104, - 101,32,115,111,117,114,99,101,32,99,111,100,101,46,10,10, - 32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,110, - 116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,100, - 32,97,108,108,111,119,115,32,116,104,101,32,108,111,97,100, - 101,114,32,116,111,32,114,101,97,100,32,98,121,116,101,99, - 111,100,101,32,102,105,108,101,115,46,10,32,32,32,32,32, - 32,32,32,82,97,105,115,101,115,32,73,79,69,114,114,111, - 114,32,119,104,101,110,32,116,104,101,32,112,97,116,104,32, - 99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101, - 100,46,10,32,32,32,32,32,32,32,32,114,138,0,0,0, - 41,1,114,197,0,0,0,41,2,114,108,0,0,0,114,35, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,218,10,112,97,116,104,95,115,116,97,116,115,198,2, - 0,0,115,2,0,0,0,0,11,122,23,83,111,117,114,99, - 101,76,111,97,100,101,114,46,112,97,116,104,95,115,116,97, - 116,115,99,4,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,67,0,0,0,115,16,0,0,0,124,0,0,106, - 0,0,124,2,0,124,3,0,131,2,0,83,41,1,122,228, + 0,115,19,0,0,0,124,0,0,106,0,0,124,1,0,131, + 1,0,100,1,0,105,1,0,83,41,2,97,170,1,0,0, 79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32, - 119,104,105,99,104,32,119,114,105,116,101,115,32,100,97,116, - 97,32,40,98,121,116,101,115,41,32,116,111,32,97,32,102, - 105,108,101,32,112,97,116,104,32,40,97,32,115,116,114,41, - 46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,101, - 109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,116, - 104,111,100,32,97,108,108,111,119,115,32,102,111,114,32,116, - 104,101,32,119,114,105,116,105,110,103,32,111,102,32,98,121, - 116,101,99,111,100,101,32,102,105,108,101,115,46,10,10,32, - 32,32,32,32,32,32,32,84,104,101,32,115,111,117,114,99, - 101,32,112,97,116,104,32,105,115,32,110,101,101,100,101,100, - 32,105,110,32,111,114,100,101,114,32,116,111,32,99,111,114, - 114,101,99,116,108,121,32,116,114,97,110,115,102,101,114,32, - 112,101,114,109,105,115,115,105,111,110,115,10,32,32,32,32, - 32,32,32,32,41,1,218,8,115,101,116,95,100,97,116,97, - 41,4,114,108,0,0,0,114,90,0,0,0,90,10,99,97, - 99,104,101,95,112,97,116,104,114,53,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,218,15,95,99, - 97,99,104,101,95,98,121,116,101,99,111,100,101,211,2,0, - 0,115,2,0,0,0,0,8,122,28,83,111,117,114,99,101, - 76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121, - 116,101,99,111,100,101,99,3,0,0,0,0,0,0,0,3, - 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0, - 100,1,0,83,41,2,122,150,79,112,116,105,111,110,97,108, - 32,109,101,116,104,111,100,32,119,104,105,99,104,32,119,114, - 105,116,101,115,32,100,97,116,97,32,40,98,121,116,101,115, - 41,32,116,111,32,97,32,102,105,108,101,32,112,97,116,104, - 32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,32, - 32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,32, - 116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,111, - 119,115,32,102,111,114,32,116,104,101,32,119,114,105,116,105, - 110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,102, - 105,108,101,115,46,10,32,32,32,32,32,32,32,32,78,114, - 4,0,0,0,41,3,114,108,0,0,0,114,35,0,0,0, - 114,53,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,114,199,0,0,0,221,2,0,0,115,0,0, - 0,0,122,21,83,111,117,114,99,101,76,111,97,100,101,114, - 46,115,101,116,95,100,97,116,97,99,2,0,0,0,0,0, - 0,0,5,0,0,0,16,0,0,0,67,0,0,0,115,105, - 0,0,0,124,0,0,106,0,0,124,1,0,131,1,0,125, - 2,0,121,19,0,124,0,0,106,1,0,124,2,0,131,1, - 0,125,3,0,87,110,58,0,4,116,2,0,107,10,0,114, - 94,0,1,125,4,0,1,122,26,0,116,3,0,100,1,0, - 100,2,0,124,1,0,131,1,1,124,4,0,130,2,0,87, - 89,100,3,0,100,3,0,125,4,0,126,4,0,88,110,1, - 0,88,116,4,0,124,3,0,131,1,0,83,41,4,122,52, - 67,111,110,99,114,101,116,101,32,105,109,112,108,101,109,101, - 110,116,97,116,105,111,110,32,111,102,32,73,110,115,112,101, - 99,116,76,111,97,100,101,114,46,103,101,116,95,115,111,117, - 114,99,101,46,122,39,115,111,117,114,99,101,32,110,111,116, - 32,97,118,97,105,108,97,98,108,101,32,116,104,114,111,117, - 103,104,32,103,101,116,95,100,97,116,97,40,41,114,106,0, - 0,0,78,41,5,114,163,0,0,0,218,8,103,101,116,95, - 100,97,116,97,114,40,0,0,0,114,107,0,0,0,114,160, - 0,0,0,41,5,114,108,0,0,0,114,126,0,0,0,114, - 35,0,0,0,114,158,0,0,0,218,3,101,120,99,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,218,10,103, - 101,116,95,115,111,117,114,99,101,228,2,0,0,115,14,0, - 0,0,0,2,15,1,3,1,19,1,18,1,9,1,31,1, - 122,23,83,111,117,114,99,101,76,111,97,100,101,114,46,103, - 101,116,95,115,111,117,114,99,101,218,9,95,111,112,116,105, - 109,105,122,101,114,29,0,0,0,99,3,0,0,0,1,0, - 0,0,4,0,0,0,9,0,0,0,67,0,0,0,115,34, - 0,0,0,116,0,0,106,1,0,116,2,0,124,1,0,124, - 2,0,100,1,0,100,2,0,100,3,0,100,4,0,124,3, - 0,131,4,2,83,41,5,122,130,82,101,116,117,114,110,32, - 116,104,101,32,99,111,100,101,32,111,98,106,101,99,116,32, - 99,111,109,112,105,108,101,100,32,102,114,111,109,32,115,111, - 117,114,99,101,46,10,10,32,32,32,32,32,32,32,32,84, - 104,101,32,39,100,97,116,97,39,32,97,114,103,117,109,101, - 110,116,32,99,97,110,32,98,101,32,97,110,121,32,111,98, - 106,101,99,116,32,116,121,112,101,32,116,104,97,116,32,99, - 111,109,112,105,108,101,40,41,32,115,117,112,112,111,114,116, - 115,46,10,32,32,32,32,32,32,32,32,114,192,0,0,0, - 218,12,100,111,110,116,95,105,110,104,101,114,105,116,84,114, - 68,0,0,0,41,3,114,121,0,0,0,114,191,0,0,0, - 218,7,99,111,109,112,105,108,101,41,4,114,108,0,0,0, - 114,53,0,0,0,114,35,0,0,0,114,204,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,14, - 115,111,117,114,99,101,95,116,111,95,99,111,100,101,238,2, - 0,0,115,4,0,0,0,0,5,21,1,122,27,83,111,117, - 114,99,101,76,111,97,100,101,114,46,115,111,117,114,99,101, - 95,116,111,95,99,111,100,101,99,2,0,0,0,0,0,0, - 0,10,0,0,0,43,0,0,0,67,0,0,0,115,174,1, + 114,101,116,117,114,110,105,110,103,32,97,32,109,101,116,97, + 100,97,116,97,32,100,105,99,116,32,102,111,114,32,116,104, + 101,32,115,112,101,99,105,102,105,101,100,32,112,97,116,104, + 10,32,32,32,32,32,32,32,32,116,111,32,98,121,32,116, + 104,101,32,112,97,116,104,32,40,115,116,114,41,46,10,32, + 32,32,32,32,32,32,32,80,111,115,115,105,98,108,101,32, + 107,101,121,115,58,10,32,32,32,32,32,32,32,32,45,32, + 39,109,116,105,109,101,39,32,40,109,97,110,100,97,116,111, + 114,121,41,32,105,115,32,116,104,101,32,110,117,109,101,114, + 105,99,32,116,105,109,101,115,116,97,109,112,32,111,102,32, + 108,97,115,116,32,115,111,117,114,99,101,10,32,32,32,32, + 32,32,32,32,32,32,99,111,100,101,32,109,111,100,105,102, + 105,99,97,116,105,111,110,59,10,32,32,32,32,32,32,32, + 32,45,32,39,115,105,122,101,39,32,40,111,112,116,105,111, + 110,97,108,41,32,105,115,32,116,104,101,32,115,105,122,101, + 32,105,110,32,98,121,116,101,115,32,111,102,32,116,104,101, + 32,115,111,117,114,99,101,32,99,111,100,101,46,10,10,32, + 32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,116, + 105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,32, + 97,108,108,111,119,115,32,116,104,101,32,108,111,97,100,101, + 114,32,116,111,32,114,101,97,100,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,115,46,10,32,32,32,32,32,32, + 32,32,82,97,105,115,101,115,32,73,79,69,114,114,111,114, + 32,119,104,101,110,32,116,104,101,32,112,97,116,104,32,99, + 97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,100, + 46,10,32,32,32,32,32,32,32,32,114,138,0,0,0,41, + 1,114,197,0,0,0,41,2,114,108,0,0,0,114,35,0, + 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, + 0,218,10,112,97,116,104,95,115,116,97,116,115,199,2,0, + 0,115,2,0,0,0,0,11,122,23,83,111,117,114,99,101, + 76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,116, + 115,99,4,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,67,0,0,0,115,16,0,0,0,124,0,0,106,0, + 0,124,2,0,124,3,0,131,2,0,83,41,1,122,228,79, + 112,116,105,111,110,97,108,32,109,101,116,104,111,100,32,119, + 104,105,99,104,32,119,114,105,116,101,115,32,100,97,116,97, + 32,40,98,121,116,101,115,41,32,116,111,32,97,32,102,105, + 108,101,32,112,97,116,104,32,40,97,32,115,116,114,41,46, + 10,10,32,32,32,32,32,32,32,32,73,109,112,108,101,109, + 101,110,116,105,110,103,32,116,104,105,115,32,109,101,116,104, + 111,100,32,97,108,108,111,119,115,32,102,111,114,32,116,104, + 101,32,119,114,105,116,105,110,103,32,111,102,32,98,121,116, + 101,99,111,100,101,32,102,105,108,101,115,46,10,10,32,32, + 32,32,32,32,32,32,84,104,101,32,115,111,117,114,99,101, + 32,112,97,116,104,32,105,115,32,110,101,101,100,101,100,32, + 105,110,32,111,114,100,101,114,32,116,111,32,99,111,114,114, + 101,99,116,108,121,32,116,114,97,110,115,102,101,114,32,112, + 101,114,109,105,115,115,105,111,110,115,10,32,32,32,32,32, + 32,32,32,41,1,218,8,115,101,116,95,100,97,116,97,41, + 4,114,108,0,0,0,114,90,0,0,0,90,10,99,97,99, + 104,101,95,112,97,116,104,114,53,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,218,15,95,99,97, + 99,104,101,95,98,121,116,101,99,111,100,101,212,2,0,0, + 115,2,0,0,0,0,8,122,28,83,111,117,114,99,101,76, + 111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,116, + 101,99,111,100,101,99,3,0,0,0,0,0,0,0,3,0, + 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100, + 1,0,83,41,2,122,150,79,112,116,105,111,110,97,108,32, + 109,101,116,104,111,100,32,119,104,105,99,104,32,119,114,105, + 116,101,115,32,100,97,116,97,32,40,98,121,116,101,115,41, + 32,116,111,32,97,32,102,105,108,101,32,112,97,116,104,32, + 40,97,32,115,116,114,41,46,10,10,32,32,32,32,32,32, + 32,32,73,109,112,108,101,109,101,110,116,105,110,103,32,116, + 104,105,115,32,109,101,116,104,111,100,32,97,108,108,111,119, + 115,32,102,111,114,32,116,104,101,32,119,114,105,116,105,110, + 103,32,111,102,32,98,121,116,101,99,111,100,101,32,102,105, + 108,101,115,46,10,32,32,32,32,32,32,32,32,78,114,4, + 0,0,0,41,3,114,108,0,0,0,114,35,0,0,0,114, + 53,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,199,0,0,0,222,2,0,0,115,0,0,0, + 0,122,21,83,111,117,114,99,101,76,111,97,100,101,114,46, + 115,101,116,95,100,97,116,97,99,2,0,0,0,0,0,0, + 0,5,0,0,0,16,0,0,0,67,0,0,0,115,105,0, 0,0,124,0,0,106,0,0,124,1,0,131,1,0,125,2, - 0,100,1,0,125,3,0,121,16,0,116,1,0,124,2,0, - 131,1,0,125,4,0,87,110,24,0,4,116,2,0,107,10, - 0,114,63,0,1,1,1,100,1,0,125,4,0,89,110,202, - 0,88,121,19,0,124,0,0,106,3,0,124,2,0,131,1, - 0,125,5,0,87,110,18,0,4,116,4,0,107,10,0,114, - 103,0,1,1,1,89,110,162,0,88,116,5,0,124,5,0, - 100,2,0,25,131,1,0,125,3,0,121,19,0,124,0,0, - 106,6,0,124,4,0,131,1,0,125,6,0,87,110,18,0, - 4,116,7,0,107,10,0,114,159,0,1,1,1,89,110,106, - 0,88,121,34,0,116,8,0,124,6,0,100,3,0,124,5, - 0,100,4,0,124,1,0,100,5,0,124,4,0,131,1,3, - 125,7,0,87,110,24,0,4,116,9,0,116,10,0,102,2, - 0,107,10,0,114,220,0,1,1,1,89,110,45,0,88,116, - 11,0,100,6,0,124,4,0,124,2,0,131,3,0,1,116, - 12,0,124,7,0,100,4,0,124,1,0,100,7,0,124,4, - 0,100,8,0,124,2,0,131,1,3,83,124,0,0,106,6, - 0,124,2,0,131,1,0,125,8,0,124,0,0,106,13,0, - 124,8,0,124,2,0,131,2,0,125,9,0,116,11,0,100, - 9,0,124,2,0,131,2,0,1,116,14,0,106,15,0,12, - 114,170,1,124,4,0,100,1,0,107,9,0,114,170,1,124, - 3,0,100,1,0,107,9,0,114,170,1,116,16,0,124,9, - 0,124,3,0,116,17,0,124,8,0,131,1,0,131,3,0, - 125,6,0,121,36,0,124,0,0,106,18,0,124,2,0,124, - 4,0,124,6,0,131,3,0,1,116,11,0,100,10,0,124, - 4,0,131,2,0,1,87,110,18,0,4,116,2,0,107,10, - 0,114,169,1,1,1,1,89,110,1,0,88,124,9,0,83, - 41,11,122,190,67,111,110,99,114,101,116,101,32,105,109,112, - 108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,73, - 110,115,112,101,99,116,76,111,97,100,101,114,46,103,101,116, - 95,99,111,100,101,46,10,10,32,32,32,32,32,32,32,32, - 82,101,97,100,105,110,103,32,111,102,32,98,121,116,101,99, - 111,100,101,32,114,101,113,117,105,114,101,115,32,112,97,116, - 104,95,115,116,97,116,115,32,116,111,32,98,101,32,105,109, - 112,108,101,109,101,110,116,101,100,46,32,84,111,32,119,114, - 105,116,101,10,32,32,32,32,32,32,32,32,98,121,116,101, - 99,111,100,101,44,32,115,101,116,95,100,97,116,97,32,109, - 117,115,116,32,97,108,115,111,32,98,101,32,105,109,112,108, - 101,109,101,110,116,101,100,46,10,10,32,32,32,32,32,32, - 32,32,78,114,138,0,0,0,114,143,0,0,0,114,106,0, - 0,0,114,35,0,0,0,122,13,123,125,32,109,97,116,99, - 104,101,115,32,123,125,114,89,0,0,0,114,90,0,0,0, - 122,19,99,111,100,101,32,111,98,106,101,99,116,32,102,114, - 111,109,32,123,125,122,10,119,114,111,116,101,32,123,33,114, - 125,41,19,114,163,0,0,0,114,79,0,0,0,114,66,0, - 0,0,114,198,0,0,0,114,196,0,0,0,114,14,0,0, - 0,114,201,0,0,0,114,40,0,0,0,114,146,0,0,0, - 114,107,0,0,0,114,141,0,0,0,114,105,0,0,0,114, - 152,0,0,0,114,207,0,0,0,114,7,0,0,0,218,19, - 100,111,110,116,95,119,114,105,116,101,95,98,121,116,101,99, - 111,100,101,114,155,0,0,0,114,31,0,0,0,114,200,0, - 0,0,41,10,114,108,0,0,0,114,126,0,0,0,114,90, - 0,0,0,114,144,0,0,0,114,89,0,0,0,218,2,115, - 116,114,53,0,0,0,218,10,98,121,116,101,115,95,100,97, - 116,97,114,158,0,0,0,90,11,99,111,100,101,95,111,98, - 106,101,99,116,114,4,0,0,0,114,4,0,0,0,114,5, - 0,0,0,114,190,0,0,0,246,2,0,0,115,78,0,0, - 0,0,7,15,1,6,1,3,1,16,1,13,1,11,2,3, - 1,19,1,13,1,5,2,16,1,3,1,19,1,13,1,5, - 2,3,1,9,1,12,1,13,1,19,1,5,2,9,1,7, - 1,15,1,6,1,7,1,15,1,18,1,13,1,22,1,12, - 1,9,1,15,1,3,1,19,1,17,1,13,1,5,1,122, - 21,83,111,117,114,99,101,76,111,97,100,101,114,46,103,101, - 116,95,99,111,100,101,78,114,87,0,0,0,41,10,114,112, - 0,0,0,114,111,0,0,0,114,113,0,0,0,114,197,0, - 0,0,114,198,0,0,0,114,200,0,0,0,114,199,0,0, - 0,114,203,0,0,0,114,207,0,0,0,114,190,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,114,195,0,0,0,188,2,0,0,115,14,0, - 0,0,12,2,12,8,12,13,12,10,12,7,12,10,18,8, - 114,195,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,0,0,0,0,115,112,0,0,0,101, - 0,0,90,1,0,100,0,0,90,2,0,100,1,0,90,3, - 0,100,2,0,100,3,0,132,0,0,90,4,0,100,4,0, - 100,5,0,132,0,0,90,5,0,100,6,0,100,7,0,132, - 0,0,90,6,0,101,7,0,135,0,0,102,1,0,100,8, - 0,100,9,0,134,0,0,131,1,0,90,8,0,101,7,0, - 100,10,0,100,11,0,132,0,0,131,1,0,90,9,0,100, - 12,0,100,13,0,132,0,0,90,10,0,135,0,0,83,41, - 14,218,10,70,105,108,101,76,111,97,100,101,114,122,103,66, - 97,115,101,32,102,105,108,101,32,108,111,97,100,101,114,32, - 99,108,97,115,115,32,119,104,105,99,104,32,105,109,112,108, - 101,109,101,110,116,115,32,116,104,101,32,108,111,97,100,101, - 114,32,112,114,111,116,111,99,111,108,32,109,101,116,104,111, - 100,115,32,116,104,97,116,10,32,32,32,32,114,101,113,117, - 105,114,101,32,102,105,108,101,32,115,121,115,116,101,109,32, - 117,115,97,103,101,46,99,3,0,0,0,0,0,0,0,3, - 0,0,0,2,0,0,0,67,0,0,0,115,22,0,0,0, - 124,1,0,124,0,0,95,0,0,124,2,0,124,0,0,95, - 1,0,100,1,0,83,41,2,122,75,67,97,99,104,101,32, - 116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,32, - 97,110,100,32,116,104,101,32,112,97,116,104,32,116,111,32, - 116,104,101,32,102,105,108,101,32,102,111,117,110,100,32,98, - 121,32,116,104,101,10,32,32,32,32,32,32,32,32,102,105, - 110,100,101,114,46,78,41,2,114,106,0,0,0,114,35,0, - 0,0,41,3,114,108,0,0,0,114,126,0,0,0,114,35, + 0,121,19,0,124,0,0,106,1,0,124,2,0,131,1,0, + 125,3,0,87,110,58,0,4,116,2,0,107,10,0,114,94, + 0,1,125,4,0,1,122,26,0,116,3,0,100,1,0,100, + 2,0,124,1,0,131,1,1,124,4,0,130,2,0,87,89, + 100,3,0,100,3,0,125,4,0,126,4,0,88,110,1,0, + 88,116,4,0,124,3,0,131,1,0,83,41,4,122,52,67, + 111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,110, + 116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,99, + 116,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114, + 99,101,46,122,39,115,111,117,114,99,101,32,110,111,116,32, + 97,118,97,105,108,97,98,108,101,32,116,104,114,111,117,103, + 104,32,103,101,116,95,100,97,116,97,40,41,114,106,0,0, + 0,78,41,5,114,163,0,0,0,218,8,103,101,116,95,100, + 97,116,97,114,40,0,0,0,114,107,0,0,0,114,160,0, + 0,0,41,5,114,108,0,0,0,114,126,0,0,0,114,35, + 0,0,0,114,158,0,0,0,218,3,101,120,99,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,10,103,101, + 116,95,115,111,117,114,99,101,229,2,0,0,115,14,0,0, + 0,0,2,15,1,3,1,19,1,18,1,9,1,31,1,122, + 23,83,111,117,114,99,101,76,111,97,100,101,114,46,103,101, + 116,95,115,111,117,114,99,101,218,9,95,111,112,116,105,109, + 105,122,101,114,29,0,0,0,99,3,0,0,0,1,0,0, + 0,4,0,0,0,9,0,0,0,67,0,0,0,115,34,0, + 0,0,116,0,0,106,1,0,116,2,0,124,1,0,124,2, + 0,100,1,0,100,2,0,100,3,0,100,4,0,124,3,0, + 131,4,2,83,41,5,122,130,82,101,116,117,114,110,32,116, + 104,101,32,99,111,100,101,32,111,98,106,101,99,116,32,99, + 111,109,112,105,108,101,100,32,102,114,111,109,32,115,111,117, + 114,99,101,46,10,10,32,32,32,32,32,32,32,32,84,104, + 101,32,39,100,97,116,97,39,32,97,114,103,117,109,101,110, + 116,32,99,97,110,32,98,101,32,97,110,121,32,111,98,106, + 101,99,116,32,116,121,112,101,32,116,104,97,116,32,99,111, + 109,112,105,108,101,40,41,32,115,117,112,112,111,114,116,115, + 46,10,32,32,32,32,32,32,32,32,114,192,0,0,0,218, + 12,100,111,110,116,95,105,110,104,101,114,105,116,84,114,68, + 0,0,0,41,3,114,121,0,0,0,114,191,0,0,0,218, + 7,99,111,109,112,105,108,101,41,4,114,108,0,0,0,114, + 53,0,0,0,114,35,0,0,0,114,204,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,218,14,115, + 111,117,114,99,101,95,116,111,95,99,111,100,101,239,2,0, + 0,115,4,0,0,0,0,5,21,1,122,27,83,111,117,114, + 99,101,76,111,97,100,101,114,46,115,111,117,114,99,101,95, + 116,111,95,99,111,100,101,99,2,0,0,0,0,0,0,0, + 10,0,0,0,43,0,0,0,67,0,0,0,115,174,1,0, + 0,124,0,0,106,0,0,124,1,0,131,1,0,125,2,0, + 100,1,0,125,3,0,121,16,0,116,1,0,124,2,0,131, + 1,0,125,4,0,87,110,24,0,4,116,2,0,107,10,0, + 114,63,0,1,1,1,100,1,0,125,4,0,89,110,202,0, + 88,121,19,0,124,0,0,106,3,0,124,2,0,131,1,0, + 125,5,0,87,110,18,0,4,116,4,0,107,10,0,114,103, + 0,1,1,1,89,110,162,0,88,116,5,0,124,5,0,100, + 2,0,25,131,1,0,125,3,0,121,19,0,124,0,0,106, + 6,0,124,4,0,131,1,0,125,6,0,87,110,18,0,4, + 116,7,0,107,10,0,114,159,0,1,1,1,89,110,106,0, + 88,121,34,0,116,8,0,124,6,0,100,3,0,124,5,0, + 100,4,0,124,1,0,100,5,0,124,4,0,131,1,3,125, + 7,0,87,110,24,0,4,116,9,0,116,10,0,102,2,0, + 107,10,0,114,220,0,1,1,1,89,110,45,0,88,116,11, + 0,100,6,0,124,4,0,124,2,0,131,3,0,1,116,12, + 0,124,7,0,100,4,0,124,1,0,100,7,0,124,4,0, + 100,8,0,124,2,0,131,1,3,83,124,0,0,106,6,0, + 124,2,0,131,1,0,125,8,0,124,0,0,106,13,0,124, + 8,0,124,2,0,131,2,0,125,9,0,116,11,0,100,9, + 0,124,2,0,131,2,0,1,116,14,0,106,15,0,12,114, + 170,1,124,4,0,100,1,0,107,9,0,114,170,1,124,3, + 0,100,1,0,107,9,0,114,170,1,116,16,0,124,9,0, + 124,3,0,116,17,0,124,8,0,131,1,0,131,3,0,125, + 6,0,121,36,0,124,0,0,106,18,0,124,2,0,124,4, + 0,124,6,0,131,3,0,1,116,11,0,100,10,0,124,4, + 0,131,2,0,1,87,110,18,0,4,116,2,0,107,10,0, + 114,169,1,1,1,1,89,110,1,0,88,124,9,0,83,41, + 11,122,190,67,111,110,99,114,101,116,101,32,105,109,112,108, + 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110, + 115,112,101,99,116,76,111,97,100,101,114,46,103,101,116,95, + 99,111,100,101,46,10,10,32,32,32,32,32,32,32,32,82, + 101,97,100,105,110,103,32,111,102,32,98,121,116,101,99,111, + 100,101,32,114,101,113,117,105,114,101,115,32,112,97,116,104, + 95,115,116,97,116,115,32,116,111,32,98,101,32,105,109,112, + 108,101,109,101,110,116,101,100,46,32,84,111,32,119,114,105, + 116,101,10,32,32,32,32,32,32,32,32,98,121,116,101,99, + 111,100,101,44,32,115,101,116,95,100,97,116,97,32,109,117, + 115,116,32,97,108,115,111,32,98,101,32,105,109,112,108,101, + 109,101,110,116,101,100,46,10,10,32,32,32,32,32,32,32, + 32,78,114,138,0,0,0,114,143,0,0,0,114,106,0,0, + 0,114,35,0,0,0,122,13,123,125,32,109,97,116,99,104, + 101,115,32,123,125,114,89,0,0,0,114,90,0,0,0,122, + 19,99,111,100,101,32,111,98,106,101,99,116,32,102,114,111, + 109,32,123,125,122,10,119,114,111,116,101,32,123,33,114,125, + 41,19,114,163,0,0,0,114,79,0,0,0,114,66,0,0, + 0,114,198,0,0,0,114,196,0,0,0,114,14,0,0,0, + 114,201,0,0,0,114,40,0,0,0,114,146,0,0,0,114, + 107,0,0,0,114,141,0,0,0,114,105,0,0,0,114,152, + 0,0,0,114,207,0,0,0,114,7,0,0,0,218,19,100, + 111,110,116,95,119,114,105,116,101,95,98,121,116,101,99,111, + 100,101,114,155,0,0,0,114,31,0,0,0,114,200,0,0, + 0,41,10,114,108,0,0,0,114,126,0,0,0,114,90,0, + 0,0,114,144,0,0,0,114,89,0,0,0,218,2,115,116, + 114,53,0,0,0,218,10,98,121,116,101,115,95,100,97,116, + 97,114,158,0,0,0,90,11,99,111,100,101,95,111,98,106, + 101,99,116,114,4,0,0,0,114,4,0,0,0,114,5,0, + 0,0,114,190,0,0,0,247,2,0,0,115,78,0,0,0, + 0,7,15,1,6,1,3,1,16,1,13,1,11,2,3,1, + 19,1,13,1,5,2,16,1,3,1,19,1,13,1,5,2, + 3,1,9,1,12,1,13,1,19,1,5,2,9,1,7,1, + 15,1,6,1,7,1,15,1,18,1,13,1,22,1,12,1, + 9,1,15,1,3,1,19,1,17,1,13,1,5,1,122,21, + 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116, + 95,99,111,100,101,78,114,87,0,0,0,41,10,114,112,0, + 0,0,114,111,0,0,0,114,113,0,0,0,114,197,0,0, + 0,114,198,0,0,0,114,200,0,0,0,114,199,0,0,0, + 114,203,0,0,0,114,207,0,0,0,114,190,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,195,0,0,0,189,2,0,0,115,14,0,0, + 0,12,2,12,8,12,13,12,10,12,7,12,10,18,8,114, + 195,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,0,0,0,0,115,112,0,0,0,101,0, + 0,90,1,0,100,0,0,90,2,0,100,1,0,90,3,0, + 100,2,0,100,3,0,132,0,0,90,4,0,100,4,0,100, + 5,0,132,0,0,90,5,0,100,6,0,100,7,0,132,0, + 0,90,6,0,101,7,0,135,0,0,102,1,0,100,8,0, + 100,9,0,134,0,0,131,1,0,90,8,0,101,7,0,100, + 10,0,100,11,0,132,0,0,131,1,0,90,9,0,100,12, + 0,100,13,0,132,0,0,90,10,0,135,0,0,83,41,14, + 218,10,70,105,108,101,76,111,97,100,101,114,122,103,66,97, + 115,101,32,102,105,108,101,32,108,111,97,100,101,114,32,99, + 108,97,115,115,32,119,104,105,99,104,32,105,109,112,108,101, + 109,101,110,116,115,32,116,104,101,32,108,111,97,100,101,114, + 32,112,114,111,116,111,99,111,108,32,109,101,116,104,111,100, + 115,32,116,104,97,116,10,32,32,32,32,114,101,113,117,105, + 114,101,32,102,105,108,101,32,115,121,115,116,101,109,32,117, + 115,97,103,101,46,99,3,0,0,0,0,0,0,0,3,0, + 0,0,2,0,0,0,67,0,0,0,115,22,0,0,0,124, + 1,0,124,0,0,95,0,0,124,2,0,124,0,0,95,1, + 0,100,1,0,83,41,2,122,75,67,97,99,104,101,32,116, + 104,101,32,109,111,100,117,108,101,32,110,97,109,101,32,97, + 110,100,32,116,104,101,32,112,97,116,104,32,116,111,32,116, + 104,101,32,102,105,108,101,32,102,111,117,110,100,32,98,121, + 32,116,104,101,10,32,32,32,32,32,32,32,32,102,105,110, + 100,101,114,46,78,41,2,114,106,0,0,0,114,35,0,0, + 0,41,3,114,108,0,0,0,114,126,0,0,0,114,35,0, + 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, + 0,114,188,0,0,0,48,3,0,0,115,4,0,0,0,0, + 3,9,1,122,19,70,105,108,101,76,111,97,100,101,114,46, + 95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0, + 0,2,0,0,0,2,0,0,0,67,0,0,0,115,34,0, + 0,0,124,0,0,106,0,0,124,1,0,106,0,0,107,2, + 0,111,33,0,124,0,0,106,1,0,124,1,0,106,1,0, + 107,2,0,83,41,1,78,41,2,218,9,95,95,99,108,97, + 115,115,95,95,114,118,0,0,0,41,2,114,108,0,0,0, + 218,5,111,116,104,101,114,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,218,6,95,95,101,113,95,95,54,3, + 0,0,115,4,0,0,0,0,1,18,1,122,17,70,105,108, + 101,76,111,97,100,101,114,46,95,95,101,113,95,95,99,1, + 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67, + 0,0,0,115,26,0,0,0,116,0,0,124,0,0,106,1, + 0,131,1,0,116,0,0,124,0,0,106,2,0,131,1,0, + 65,83,41,1,78,41,3,218,4,104,97,115,104,114,106,0, + 0,0,114,35,0,0,0,41,1,114,108,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,218,8,95, + 95,104,97,115,104,95,95,58,3,0,0,115,2,0,0,0, + 0,1,122,19,70,105,108,101,76,111,97,100,101,114,46,95, + 95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,3,0,0,0,115,22,0,0, + 0,116,0,0,116,1,0,124,0,0,131,2,0,106,2,0, + 124,1,0,131,1,0,83,41,1,122,100,76,111,97,100,32, + 97,32,109,111,100,117,108,101,32,102,114,111,109,32,97,32, + 102,105,108,101,46,10,10,32,32,32,32,32,32,32,32,84, + 104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101, + 112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,101, + 120,101,99,95,109,111,100,117,108,101,40,41,32,105,110,115, + 116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,41, + 3,218,5,115,117,112,101,114,114,211,0,0,0,114,194,0, + 0,0,41,2,114,108,0,0,0,114,126,0,0,0,41,1, + 114,212,0,0,0,114,4,0,0,0,114,5,0,0,0,114, + 194,0,0,0,61,3,0,0,115,2,0,0,0,0,10,122, + 22,70,105,108,101,76,111,97,100,101,114,46,108,111,97,100, + 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0, + 2,0,0,0,1,0,0,0,67,0,0,0,115,7,0,0, + 0,124,0,0,106,0,0,83,41,1,122,58,82,101,116,117, + 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,116, + 104,101,32,115,111,117,114,99,101,32,102,105,108,101,32,97, + 115,32,102,111,117,110,100,32,98,121,32,116,104,101,32,102, + 105,110,100,101,114,46,41,1,114,35,0,0,0,41,2,114, + 108,0,0,0,114,126,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,5,0,0,0,114,163,0,0,0,73,3,0, + 0,115,2,0,0,0,0,3,122,23,70,105,108,101,76,111, + 97,100,101,114,46,103,101,116,95,102,105,108,101,110,97,109, + 101,99,2,0,0,0,0,0,0,0,3,0,0,0,8,0, + 0,0,67,0,0,0,115,41,0,0,0,116,0,0,106,1, + 0,124,1,0,100,1,0,131,2,0,143,17,0,125,2,0, + 124,2,0,106,2,0,131,0,0,83,87,100,2,0,81,88, + 100,2,0,83,41,3,122,39,82,101,116,117,114,110,32,116, + 104,101,32,100,97,116,97,32,102,114,111,109,32,112,97,116, + 104,32,97,115,32,114,97,119,32,98,121,116,101,115,46,218, + 1,114,78,41,3,114,49,0,0,0,114,50,0,0,0,90, + 4,114,101,97,100,41,3,114,108,0,0,0,114,35,0,0, + 0,114,54,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,5,0,0,0,114,201,0,0,0,78,3,0,0,115,4, + 0,0,0,0,2,21,1,122,19,70,105,108,101,76,111,97, + 100,101,114,46,103,101,116,95,100,97,116,97,41,11,114,112, + 0,0,0,114,111,0,0,0,114,113,0,0,0,114,114,0, + 0,0,114,188,0,0,0,114,214,0,0,0,114,216,0,0, + 0,114,123,0,0,0,114,194,0,0,0,114,163,0,0,0, + 114,201,0,0,0,114,4,0,0,0,114,4,0,0,0,41, + 1,114,212,0,0,0,114,5,0,0,0,114,211,0,0,0, + 43,3,0,0,115,14,0,0,0,12,3,6,2,12,6,12, + 4,12,3,24,12,18,5,114,211,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,0, + 0,115,64,0,0,0,101,0,0,90,1,0,100,0,0,90, + 2,0,100,1,0,90,3,0,100,2,0,100,3,0,132,0, + 0,90,4,0,100,4,0,100,5,0,132,0,0,90,5,0, + 100,6,0,100,7,0,100,8,0,100,9,0,132,0,1,90, + 6,0,100,10,0,83,41,11,218,16,83,111,117,114,99,101, + 70,105,108,101,76,111,97,100,101,114,122,62,67,111,110,99, + 114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116, + 105,111,110,32,111,102,32,83,111,117,114,99,101,76,111,97, + 100,101,114,32,117,115,105,110,103,32,116,104,101,32,102,105, + 108,101,32,115,121,115,116,101,109,46,99,2,0,0,0,0, + 0,0,0,3,0,0,0,5,0,0,0,67,0,0,0,115, + 34,0,0,0,116,0,0,124,1,0,131,1,0,125,2,0, + 124,2,0,106,1,0,100,1,0,124,2,0,106,2,0,100, + 2,0,105,2,0,83,41,3,122,33,82,101,116,117,114,110, + 32,116,104,101,32,109,101,116,97,100,97,116,97,32,102,111, + 114,32,116,104,101,32,112,97,116,104,46,114,138,0,0,0, + 114,139,0,0,0,41,3,114,39,0,0,0,218,8,115,116, + 95,109,116,105,109,101,90,7,115,116,95,115,105,122,101,41, + 3,114,108,0,0,0,114,35,0,0,0,114,209,0,0,0, + 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, + 198,0,0,0,88,3,0,0,115,4,0,0,0,0,2,12, + 1,122,27,83,111,117,114,99,101,70,105,108,101,76,111,97, + 100,101,114,46,112,97,116,104,95,115,116,97,116,115,99,4, + 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67, + 0,0,0,115,34,0,0,0,116,0,0,124,1,0,131,1, + 0,125,4,0,124,0,0,106,1,0,124,2,0,124,3,0, + 100,1,0,124,4,0,131,2,1,83,41,2,78,218,5,95, + 109,111,100,101,41,2,114,97,0,0,0,114,199,0,0,0, + 41,5,114,108,0,0,0,114,90,0,0,0,114,89,0,0, + 0,114,53,0,0,0,114,42,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,114,200,0,0,0,93, + 3,0,0,115,4,0,0,0,0,2,12,1,122,32,83,111, + 117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,95, + 99,97,99,104,101,95,98,121,116,101,99,111,100,101,114,221, + 0,0,0,105,182,1,0,0,99,3,0,0,0,1,0,0, + 0,9,0,0,0,17,0,0,0,67,0,0,0,115,53,1, + 0,0,116,0,0,124,1,0,131,1,0,92,2,0,125,4, + 0,125,5,0,103,0,0,125,6,0,120,54,0,124,4,0, + 114,80,0,116,1,0,124,4,0,131,1,0,12,114,80,0, + 116,0,0,124,4,0,131,1,0,92,2,0,125,4,0,125, + 7,0,124,6,0,106,2,0,124,7,0,131,1,0,1,113, + 27,0,87,120,132,0,116,3,0,124,6,0,131,1,0,68, + 93,118,0,125,7,0,116,4,0,124,4,0,124,7,0,131, + 2,0,125,4,0,121,17,0,116,5,0,106,6,0,124,4, + 0,131,1,0,1,87,113,94,0,4,116,7,0,107,10,0, + 114,155,0,1,1,1,119,94,0,89,113,94,0,4,116,8, + 0,107,10,0,114,211,0,1,125,8,0,1,122,25,0,116, + 9,0,100,1,0,124,4,0,124,8,0,131,3,0,1,100, + 2,0,83,87,89,100,2,0,100,2,0,125,8,0,126,8, + 0,88,113,94,0,88,113,94,0,87,121,33,0,116,10,0, + 124,1,0,124,2,0,124,3,0,131,3,0,1,116,9,0, + 100,3,0,124,1,0,131,2,0,1,87,110,53,0,4,116, + 8,0,107,10,0,114,48,1,1,125,8,0,1,122,21,0, + 116,9,0,100,1,0,124,1,0,124,8,0,131,3,0,1, + 87,89,100,2,0,100,2,0,125,8,0,126,8,0,88,110, + 1,0,88,100,2,0,83,41,4,122,27,87,114,105,116,101, + 32,98,121,116,101,115,32,100,97,116,97,32,116,111,32,97, + 32,102,105,108,101,46,122,27,99,111,117,108,100,32,110,111, + 116,32,99,114,101,97,116,101,32,123,33,114,125,58,32,123, + 33,114,125,78,122,12,99,114,101,97,116,101,100,32,123,33, + 114,125,41,11,114,38,0,0,0,114,46,0,0,0,114,169, + 0,0,0,114,33,0,0,0,114,28,0,0,0,114,3,0, + 0,0,90,5,109,107,100,105,114,218,15,70,105,108,101,69, + 120,105,115,116,115,69,114,114,111,114,114,40,0,0,0,114, + 105,0,0,0,114,55,0,0,0,41,9,114,108,0,0,0, + 114,35,0,0,0,114,53,0,0,0,114,221,0,0,0,218, + 6,112,97,114,101,110,116,114,94,0,0,0,114,27,0,0, + 0,114,23,0,0,0,114,202,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,114,199,0,0,0,98, + 3,0,0,115,38,0,0,0,0,2,18,1,6,2,22,1, + 18,1,17,2,19,1,15,1,3,1,17,1,13,2,7,1, + 18,3,16,1,27,1,3,1,16,1,17,1,18,2,122,25, + 83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,114, + 46,115,101,116,95,100,97,116,97,78,41,7,114,112,0,0, + 0,114,111,0,0,0,114,113,0,0,0,114,114,0,0,0, + 114,198,0,0,0,114,200,0,0,0,114,199,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,219,0,0,0,84,3,0,0,115,8,0,0, + 0,12,2,6,2,12,5,12,5,114,219,0,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64, + 0,0,0,115,46,0,0,0,101,0,0,90,1,0,100,0, + 0,90,2,0,100,1,0,90,3,0,100,2,0,100,3,0, + 132,0,0,90,4,0,100,4,0,100,5,0,132,0,0,90, + 5,0,100,6,0,83,41,7,218,20,83,111,117,114,99,101, + 108,101,115,115,70,105,108,101,76,111,97,100,101,114,122,45, + 76,111,97,100,101,114,32,119,104,105,99,104,32,104,97,110, + 100,108,101,115,32,115,111,117,114,99,101,108,101,115,115,32, + 102,105,108,101,32,105,109,112,111,114,116,115,46,99,2,0, + 0,0,0,0,0,0,5,0,0,0,6,0,0,0,67,0, + 0,0,115,76,0,0,0,124,0,0,106,0,0,124,1,0, + 131,1,0,125,2,0,124,0,0,106,1,0,124,2,0,131, + 1,0,125,3,0,116,2,0,124,3,0,100,1,0,124,1, + 0,100,2,0,124,2,0,131,1,2,125,4,0,116,3,0, + 124,4,0,100,1,0,124,1,0,100,3,0,124,2,0,131, + 1,2,83,41,4,78,114,106,0,0,0,114,35,0,0,0, + 114,89,0,0,0,41,4,114,163,0,0,0,114,201,0,0, + 0,114,146,0,0,0,114,152,0,0,0,41,5,114,108,0, + 0,0,114,126,0,0,0,114,35,0,0,0,114,53,0,0, + 0,114,210,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,5,0,0,0,114,190,0,0,0,131,3,0,0,115,8, + 0,0,0,0,1,15,1,15,1,24,1,122,29,83,111,117, + 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101, + 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0, + 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115, + 4,0,0,0,100,1,0,83,41,2,122,39,82,101,116,117, + 114,110,32,78,111,110,101,32,97,115,32,116,104,101,114,101, + 32,105,115,32,110,111,32,115,111,117,114,99,101,32,99,111, + 100,101,46,78,114,4,0,0,0,41,2,114,108,0,0,0, + 114,126,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,203,0,0,0,137,3,0,0,115,2,0, + 0,0,0,2,122,31,83,111,117,114,99,101,108,101,115,115, + 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,115, + 111,117,114,99,101,78,41,6,114,112,0,0,0,114,111,0, + 0,0,114,113,0,0,0,114,114,0,0,0,114,190,0,0, + 0,114,203,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,114,224,0,0,0,127, + 3,0,0,115,6,0,0,0,12,2,6,2,12,6,114,224, + 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,64,0,0,0,115,130,0,0,0,101,0,0, + 90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,100, + 2,0,100,3,0,132,0,0,90,4,0,100,4,0,100,5, + 0,132,0,0,90,5,0,100,6,0,100,7,0,132,0,0, + 90,6,0,101,7,0,100,8,0,100,9,0,132,0,0,131, + 1,0,90,8,0,100,10,0,100,11,0,132,0,0,90,9, + 0,100,12,0,100,13,0,132,0,0,90,10,0,100,14,0, + 100,15,0,132,0,0,90,11,0,101,7,0,100,16,0,100, + 17,0,132,0,0,131,1,0,90,12,0,100,18,0,83,41, + 19,218,19,69,120,116,101,110,115,105,111,110,70,105,108,101, + 76,111,97,100,101,114,122,93,76,111,97,100,101,114,32,102, + 111,114,32,101,120,116,101,110,115,105,111,110,32,109,111,100, + 117,108,101,115,46,10,10,32,32,32,32,84,104,101,32,99, + 111,110,115,116,114,117,99,116,111,114,32,105,115,32,100,101, + 115,105,103,110,101,100,32,116,111,32,119,111,114,107,32,119, + 105,116,104,32,70,105,108,101,70,105,110,100,101,114,46,10, + 10,32,32,32,32,99,3,0,0,0,0,0,0,0,3,0, + 0,0,2,0,0,0,67,0,0,0,115,22,0,0,0,124, + 1,0,124,0,0,95,0,0,124,2,0,124,0,0,95,1, + 0,100,0,0,83,41,1,78,41,2,114,106,0,0,0,114, + 35,0,0,0,41,3,114,108,0,0,0,114,106,0,0,0, + 114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,188,0,0,0,154,3,0,0,115,4,0, + 0,0,0,1,9,1,122,28,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,95,95,105,110, + 105,116,95,95,99,2,0,0,0,0,0,0,0,2,0,0, + 0,2,0,0,0,67,0,0,0,115,34,0,0,0,124,0, + 0,106,0,0,124,1,0,106,0,0,107,2,0,111,33,0, + 124,0,0,106,1,0,124,1,0,106,1,0,107,2,0,83, + 41,1,78,41,2,114,212,0,0,0,114,118,0,0,0,41, + 2,114,108,0,0,0,114,213,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,114,214,0,0,0,158, + 3,0,0,115,4,0,0,0,0,1,18,1,122,26,69,120, + 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, + 114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,67,0,0,0,115,26,0, + 0,0,116,0,0,124,0,0,106,1,0,131,1,0,116,0, + 0,124,0,0,106,2,0,131,1,0,65,83,41,1,78,41, + 3,114,215,0,0,0,114,106,0,0,0,114,35,0,0,0, + 41,1,114,108,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,114,216,0,0,0,162,3,0,0,115, + 2,0,0,0,0,1,122,28,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97, + 115,104,95,95,99,2,0,0,0,0,0,0,0,4,0,0, + 0,11,0,0,0,67,0,0,0,115,183,0,0,0,116,0, + 0,106,1,0,124,1,0,131,1,0,143,32,0,1,116,0, + 0,106,2,0,116,3,0,106,4,0,124,1,0,124,0,0, + 106,5,0,131,3,0,125,2,0,87,100,1,0,81,88,116, + 6,0,100,2,0,124,0,0,106,5,0,131,2,0,1,124, + 0,0,106,7,0,124,1,0,131,1,0,125,3,0,124,3, + 0,114,127,0,116,8,0,124,2,0,100,3,0,131,2,0, + 12,114,127,0,116,9,0,124,0,0,106,5,0,131,1,0, + 100,4,0,25,103,1,0,124,2,0,95,10,0,124,0,0, + 124,2,0,95,11,0,124,2,0,106,12,0,124,2,0,95, + 13,0,124,3,0,115,179,0,124,2,0,106,13,0,106,14, + 0,100,5,0,131,1,0,100,4,0,25,124,2,0,95,13, + 0,124,2,0,83,41,6,122,25,76,111,97,100,32,97,110, + 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, + 101,46,78,122,33,101,120,116,101,110,115,105,111,110,32,109, + 111,100,117,108,101,32,108,111,97,100,101,100,32,102,114,111, + 109,32,123,33,114,125,218,8,95,95,112,97,116,104,95,95, + 114,59,0,0,0,114,58,0,0,0,41,15,114,121,0,0, + 0,90,13,95,77,97,110,97,103,101,82,101,108,111,97,100, + 114,191,0,0,0,114,150,0,0,0,90,12,108,111,97,100, + 95,100,121,110,97,109,105,99,114,35,0,0,0,114,105,0, + 0,0,114,162,0,0,0,114,115,0,0,0,114,38,0,0, + 0,114,226,0,0,0,218,10,95,95,108,111,97,100,101,114, + 95,95,114,112,0,0,0,218,11,95,95,112,97,99,107,97, + 103,101,95,95,114,32,0,0,0,41,4,114,108,0,0,0, + 114,126,0,0,0,114,134,0,0,0,114,162,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,194, + 0,0,0,165,3,0,0,115,24,0,0,0,0,5,16,1, + 12,1,21,1,16,1,15,1,22,1,25,1,9,1,12,1, + 6,1,25,1,122,31,69,120,116,101,110,115,105,111,110,70, + 105,108,101,76,111,97,100,101,114,46,108,111,97,100,95,109, + 111,100,117,108,101,99,2,0,0,0,0,0,0,0,2,0, + 0,0,4,0,0,0,3,0,0,0,115,48,0,0,0,116, + 0,0,124,0,0,106,1,0,131,1,0,100,1,0,25,137, + 0,0,116,2,0,135,0,0,102,1,0,100,2,0,100,3, + 0,134,0,0,116,3,0,68,131,1,0,131,1,0,83,41, + 4,122,49,82,101,116,117,114,110,32,84,114,117,101,32,105, + 102,32,116,104,101,32,101,120,116,101,110,115,105,111,110,32, + 109,111,100,117,108,101,32,105,115,32,97,32,112,97,99,107, + 97,103,101,46,114,29,0,0,0,99,1,0,0,0,0,0, + 0,0,2,0,0,0,4,0,0,0,51,0,0,0,115,31, + 0,0,0,124,0,0,93,21,0,125,1,0,136,0,0,100, + 0,0,124,1,0,23,107,2,0,86,1,113,3,0,100,1, + 0,83,41,2,114,188,0,0,0,78,114,4,0,0,0,41, + 2,114,22,0,0,0,218,6,115,117,102,102,105,120,41,1, + 218,9,102,105,108,101,95,110,97,109,101,114,4,0,0,0, + 114,5,0,0,0,250,9,60,103,101,110,101,120,112,114,62, + 186,3,0,0,115,2,0,0,0,6,1,122,49,69,120,116, + 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, + 46,105,115,95,112,97,99,107,97,103,101,46,60,108,111,99, + 97,108,115,62,46,60,103,101,110,101,120,112,114,62,41,4, + 114,38,0,0,0,114,35,0,0,0,218,3,97,110,121,218, + 18,69,88,84,69,78,83,73,79,78,95,83,85,70,70,73, + 88,69,83,41,2,114,108,0,0,0,114,126,0,0,0,114, + 4,0,0,0,41,1,114,230,0,0,0,114,5,0,0,0, + 114,162,0,0,0,183,3,0,0,115,6,0,0,0,0,2, + 19,1,18,1,122,30,69,120,116,101,110,115,105,111,110,70, + 105,108,101,76,111,97,100,101,114,46,105,115,95,112,97,99, + 107,97,103,101,99,2,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, + 0,83,41,2,122,63,82,101,116,117,114,110,32,78,111,110, + 101,32,97,115,32,97,110,32,101,120,116,101,110,115,105,111, + 110,32,109,111,100,117,108,101,32,99,97,110,110,111,116,32, + 99,114,101,97,116,101,32,97,32,99,111,100,101,32,111,98, + 106,101,99,116,46,78,114,4,0,0,0,41,2,114,108,0, + 0,0,114,126,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,114,190,0,0,0,189,3,0,0,115, + 2,0,0,0,0,2,122,28,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95, + 99,111,100,101,99,2,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, + 0,83,41,2,122,53,82,101,116,117,114,110,32,78,111,110, + 101,32,97,115,32,101,120,116,101,110,115,105,111,110,32,109, + 111,100,117,108,101,115,32,104,97,118,101,32,110,111,32,115, + 111,117,114,99,101,32,99,111,100,101,46,78,114,4,0,0, + 0,41,2,114,108,0,0,0,114,126,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,114,203,0,0, + 0,193,3,0,0,115,2,0,0,0,0,2,122,30,69,120, + 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, + 114,46,103,101,116,95,115,111,117,114,99,101,99,2,0,0, + 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, + 0,115,7,0,0,0,124,0,0,106,0,0,83,41,1,122, + 58,82,101,116,117,114,110,32,116,104,101,32,112,97,116,104, + 32,116,111,32,116,104,101,32,115,111,117,114,99,101,32,102, + 105,108,101,32,97,115,32,102,111,117,110,100,32,98,121,32, + 116,104,101,32,102,105,110,100,101,114,46,41,1,114,35,0, + 0,0,41,2,114,108,0,0,0,114,126,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,163,0, + 0,0,197,3,0,0,115,2,0,0,0,0,3,122,32,69, + 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, + 101,114,46,103,101,116,95,102,105,108,101,110,97,109,101,78, + 41,13,114,112,0,0,0,114,111,0,0,0,114,113,0,0, + 0,114,114,0,0,0,114,188,0,0,0,114,214,0,0,0, + 114,216,0,0,0,114,123,0,0,0,114,194,0,0,0,114, + 162,0,0,0,114,190,0,0,0,114,203,0,0,0,114,163, + 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,114,225,0,0,0,146,3,0,0, + 115,18,0,0,0,12,6,6,2,12,4,12,4,12,3,18, + 18,12,6,12,4,12,4,114,225,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0, + 0,115,130,0,0,0,101,0,0,90,1,0,100,0,0,90, + 2,0,100,1,0,90,3,0,100,2,0,100,3,0,132,0, + 0,90,4,0,100,4,0,100,5,0,132,0,0,90,5,0, + 100,6,0,100,7,0,132,0,0,90,6,0,100,8,0,100, + 9,0,132,0,0,90,7,0,100,10,0,100,11,0,132,0, + 0,90,8,0,100,12,0,100,13,0,132,0,0,90,9,0, + 100,14,0,100,15,0,132,0,0,90,10,0,100,16,0,100, + 17,0,132,0,0,90,11,0,100,18,0,100,19,0,132,0, + 0,90,12,0,100,20,0,83,41,21,218,14,95,78,97,109, + 101,115,112,97,99,101,80,97,116,104,97,38,1,0,0,82, + 101,112,114,101,115,101,110,116,115,32,97,32,110,97,109,101, + 115,112,97,99,101,32,112,97,99,107,97,103,101,39,115,32, + 112,97,116,104,46,32,32,73,116,32,117,115,101,115,32,116, + 104,101,32,109,111,100,117,108,101,32,110,97,109,101,10,32, + 32,32,32,116,111,32,102,105,110,100,32,105,116,115,32,112, + 97,114,101,110,116,32,109,111,100,117,108,101,44,32,97,110, + 100,32,102,114,111,109,32,116,104,101,114,101,32,105,116,32, + 108,111,111,107,115,32,117,112,32,116,104,101,32,112,97,114, + 101,110,116,39,115,10,32,32,32,32,95,95,112,97,116,104, + 95,95,46,32,32,87,104,101,110,32,116,104,105,115,32,99, + 104,97,110,103,101,115,44,32,116,104,101,32,109,111,100,117, + 108,101,39,115,32,111,119,110,32,112,97,116,104,32,105,115, + 32,114,101,99,111,109,112,117,116,101,100,44,10,32,32,32, + 32,117,115,105,110,103,32,112,97,116,104,95,102,105,110,100, + 101,114,46,32,32,70,111,114,32,116,111,112,45,108,101,118, + 101,108,32,109,111,100,117,108,101,115,44,32,116,104,101,32, + 112,97,114,101,110,116,32,109,111,100,117,108,101,39,115,32, + 112,97,116,104,10,32,32,32,32,105,115,32,115,121,115,46, + 112,97,116,104,46,99,4,0,0,0,0,0,0,0,4,0, + 0,0,2,0,0,0,67,0,0,0,115,52,0,0,0,124, + 1,0,124,0,0,95,0,0,124,2,0,124,0,0,95,1, + 0,116,2,0,124,0,0,106,3,0,131,0,0,131,1,0, + 124,0,0,95,4,0,124,3,0,124,0,0,95,5,0,100, + 0,0,83,41,1,78,41,6,218,5,95,110,97,109,101,218, + 5,95,112,97,116,104,114,93,0,0,0,218,16,95,103,101, + 116,95,112,97,114,101,110,116,95,112,97,116,104,218,17,95, + 108,97,115,116,95,112,97,114,101,110,116,95,112,97,116,104, + 218,12,95,112,97,116,104,95,102,105,110,100,101,114,41,4, + 114,108,0,0,0,114,106,0,0,0,114,35,0,0,0,218, + 11,112,97,116,104,95,102,105,110,100,101,114,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,114,188,0,0,0, + 210,3,0,0,115,8,0,0,0,0,1,9,1,9,1,21, + 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116, + 104,46,95,95,105,110,105,116,95,95,99,1,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,67,0,0,0,115, + 53,0,0,0,124,0,0,106,0,0,106,1,0,100,1,0, + 131,1,0,92,3,0,125,1,0,125,2,0,125,3,0,124, + 2,0,100,2,0,107,2,0,114,43,0,100,6,0,83,124, + 1,0,100,5,0,102,2,0,83,41,7,122,62,82,101,116, + 117,114,110,115,32,97,32,116,117,112,108,101,32,111,102,32, + 40,112,97,114,101,110,116,45,109,111,100,117,108,101,45,110, + 97,109,101,44,32,112,97,114,101,110,116,45,112,97,116,104, + 45,97,116,116,114,45,110,97,109,101,41,114,58,0,0,0, + 114,30,0,0,0,114,7,0,0,0,114,35,0,0,0,114, + 226,0,0,0,41,2,122,3,115,121,115,122,4,112,97,116, + 104,41,2,114,235,0,0,0,114,32,0,0,0,41,4,114, + 108,0,0,0,114,223,0,0,0,218,3,100,111,116,90,2, + 109,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0, + 0,218,23,95,102,105,110,100,95,112,97,114,101,110,116,95, + 112,97,116,104,95,110,97,109,101,115,216,3,0,0,115,8, + 0,0,0,0,2,27,1,12,2,4,3,122,38,95,78,97, + 109,101,115,112,97,99,101,80,97,116,104,46,95,102,105,110, + 100,95,112,97,114,101,110,116,95,112,97,116,104,95,110,97, + 109,101,115,99,1,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,0, + 106,0,0,131,0,0,92,2,0,125,1,0,125,2,0,116, + 1,0,116,2,0,106,3,0,124,1,0,25,124,2,0,131, + 2,0,83,41,1,78,41,4,114,242,0,0,0,114,117,0, + 0,0,114,7,0,0,0,114,132,0,0,0,41,3,114,108, + 0,0,0,90,18,112,97,114,101,110,116,95,109,111,100,117, + 108,101,95,110,97,109,101,90,14,112,97,116,104,95,97,116, + 116,114,95,110,97,109,101,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,114,237,0,0,0,226,3,0,0,115, + 4,0,0,0,0,1,18,1,122,31,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,46,95,103,101,116,95,112,97, + 114,101,110,116,95,112,97,116,104,99,1,0,0,0,0,0, + 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,118, + 0,0,0,116,0,0,124,0,0,106,1,0,131,0,0,131, + 1,0,125,1,0,124,1,0,124,0,0,106,2,0,107,3, + 0,114,111,0,124,0,0,106,3,0,124,0,0,106,4,0, + 124,1,0,131,2,0,125,2,0,124,2,0,100,0,0,107, + 9,0,114,102,0,124,2,0,106,5,0,100,0,0,107,8, + 0,114,102,0,124,2,0,106,6,0,114,102,0,124,2,0, + 106,6,0,124,0,0,95,7,0,124,1,0,124,0,0,95, + 2,0,124,0,0,106,7,0,83,41,1,78,41,8,114,93, + 0,0,0,114,237,0,0,0,114,238,0,0,0,114,239,0, + 0,0,114,235,0,0,0,114,127,0,0,0,114,164,0,0, + 0,114,236,0,0,0,41,3,114,108,0,0,0,90,11,112, + 97,114,101,110,116,95,112,97,116,104,114,133,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,12, + 95,114,101,99,97,108,99,117,108,97,116,101,230,3,0,0, + 115,16,0,0,0,0,2,18,1,15,1,21,3,27,1,9, + 1,12,1,9,1,122,27,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,95,114,101,99,97,108,99,117,108,97, + 116,101,99,1,0,0,0,0,0,0,0,1,0,0,0,2, + 0,0,0,67,0,0,0,115,16,0,0,0,116,0,0,124, + 0,0,106,1,0,131,0,0,131,1,0,83,41,1,78,41, + 2,218,4,105,116,101,114,114,243,0,0,0,41,1,114,108, 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,114,188,0,0,0,47,3,0,0,115,4,0,0,0, - 0,3,9,1,122,19,70,105,108,101,76,111,97,100,101,114, - 46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,0, - 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,34, - 0,0,0,124,0,0,106,0,0,124,1,0,106,0,0,107, - 2,0,111,33,0,124,0,0,106,1,0,124,1,0,106,1, - 0,107,2,0,83,41,1,78,41,2,218,9,95,95,99,108, - 97,115,115,95,95,114,118,0,0,0,41,2,114,108,0,0, - 0,218,5,111,116,104,101,114,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,218,6,95,95,101,113,95,95,53, - 3,0,0,115,4,0,0,0,0,1,18,1,122,17,70,105, - 108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,99, - 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 67,0,0,0,115,26,0,0,0,116,0,0,124,0,0,106, - 1,0,131,1,0,116,0,0,124,0,0,106,2,0,131,1, - 0,65,83,41,1,78,41,3,218,4,104,97,115,104,114,106, - 0,0,0,114,35,0,0,0,41,1,114,108,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,8, - 95,95,104,97,115,104,95,95,57,3,0,0,115,2,0,0, - 0,0,1,122,19,70,105,108,101,76,111,97,100,101,114,46, - 95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,0, - 0,2,0,0,0,3,0,0,0,3,0,0,0,115,22,0, - 0,0,116,0,0,116,1,0,124,0,0,131,2,0,106,2, - 0,124,1,0,131,1,0,83,41,1,122,100,76,111,97,100, - 32,97,32,109,111,100,117,108,101,32,102,114,111,109,32,97, - 32,102,105,108,101,46,10,10,32,32,32,32,32,32,32,32, - 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, - 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, - 101,120,101,99,95,109,111,100,117,108,101,40,41,32,105,110, - 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32, - 41,3,218,5,115,117,112,101,114,114,211,0,0,0,114,194, - 0,0,0,41,2,114,108,0,0,0,114,126,0,0,0,41, - 1,114,212,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,194,0,0,0,60,3,0,0,115,2,0,0,0,0,10, - 122,22,70,105,108,101,76,111,97,100,101,114,46,108,111,97, - 100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,1,0,0,0,67,0,0,0,115,7,0, - 0,0,124,0,0,106,0,0,83,41,1,122,58,82,101,116, - 117,114,110,32,116,104,101,32,112,97,116,104,32,116,111,32, - 116,104,101,32,115,111,117,114,99,101,32,102,105,108,101,32, - 97,115,32,102,111,117,110,100,32,98,121,32,116,104,101,32, - 102,105,110,100,101,114,46,41,1,114,35,0,0,0,41,2, - 114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,163,0,0,0,72,3, - 0,0,115,2,0,0,0,0,3,122,23,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97, - 109,101,99,2,0,0,0,0,0,0,0,3,0,0,0,8, - 0,0,0,67,0,0,0,115,41,0,0,0,116,0,0,106, - 1,0,124,1,0,100,1,0,131,2,0,143,17,0,125,2, - 0,124,2,0,106,2,0,131,0,0,83,87,100,2,0,81, - 88,100,2,0,83,41,3,122,39,82,101,116,117,114,110,32, - 116,104,101,32,100,97,116,97,32,102,114,111,109,32,112,97, - 116,104,32,97,115,32,114,97,119,32,98,121,116,101,115,46, - 218,1,114,78,41,3,114,49,0,0,0,114,50,0,0,0, - 90,4,114,101,97,100,41,3,114,108,0,0,0,114,35,0, - 0,0,114,54,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,114,201,0,0,0,77,3,0,0,115, - 4,0,0,0,0,2,21,1,122,19,70,105,108,101,76,111, - 97,100,101,114,46,103,101,116,95,100,97,116,97,41,11,114, - 112,0,0,0,114,111,0,0,0,114,113,0,0,0,114,114, - 0,0,0,114,188,0,0,0,114,214,0,0,0,114,216,0, - 0,0,114,123,0,0,0,114,194,0,0,0,114,163,0,0, - 0,114,201,0,0,0,114,4,0,0,0,114,4,0,0,0, - 41,1,114,212,0,0,0,114,5,0,0,0,114,211,0,0, - 0,42,3,0,0,115,14,0,0,0,12,3,6,2,12,6, - 12,4,12,3,24,12,18,5,114,211,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,64,0, - 0,0,115,64,0,0,0,101,0,0,90,1,0,100,0,0, - 90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,132, - 0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,5, - 0,100,6,0,100,7,0,100,8,0,100,9,0,132,0,1, - 90,6,0,100,10,0,83,41,11,218,16,83,111,117,114,99, - 101,70,105,108,101,76,111,97,100,101,114,122,62,67,111,110, - 99,114,101,116,101,32,105,109,112,108,101,109,101,110,116,97, - 116,105,111,110,32,111,102,32,83,111,117,114,99,101,76,111, - 97,100,101,114,32,117,115,105,110,103,32,116,104,101,32,102, - 105,108,101,32,115,121,115,116,101,109,46,99,2,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0, - 115,36,0,0,0,116,0,0,124,1,0,131,1,0,125,2, - 0,105,2,0,124,2,0,106,1,0,100,1,0,54,124,2, - 0,106,2,0,100,2,0,54,83,41,3,122,33,82,101,116, - 117,114,110,32,116,104,101,32,109,101,116,97,100,97,116,97, - 32,102,111,114,32,116,104,101,32,112,97,116,104,46,114,138, - 0,0,0,114,139,0,0,0,41,3,114,39,0,0,0,218, - 8,115,116,95,109,116,105,109,101,90,7,115,116,95,115,105, - 122,101,41,3,114,108,0,0,0,114,35,0,0,0,114,209, + 0,0,218,8,95,95,105,116,101,114,95,95,243,3,0,0, + 115,2,0,0,0,0,1,122,23,95,78,97,109,101,115,112, + 97,99,101,80,97,116,104,46,95,95,105,116,101,114,95,95, + 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0, + 0,67,0,0,0,115,16,0,0,0,116,0,0,124,0,0, + 106,1,0,131,0,0,131,1,0,83,41,1,78,41,2,114, + 31,0,0,0,114,243,0,0,0,41,1,114,108,0,0,0, + 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, + 7,95,95,108,101,110,95,95,246,3,0,0,115,2,0,0, + 0,0,1,122,22,95,78,97,109,101,115,112,97,99,101,80, + 97,116,104,46,95,95,108,101,110,95,95,99,1,0,0,0, + 0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,0, + 115,16,0,0,0,100,1,0,106,0,0,124,0,0,106,1, + 0,131,1,0,83,41,2,78,122,20,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,40,123,33,114,125,41,41,2, + 114,47,0,0,0,114,236,0,0,0,41,1,114,108,0,0, + 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, + 218,8,95,95,114,101,112,114,95,95,249,3,0,0,115,2, + 0,0,0,0,1,122,23,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,95,95,114,101,112,114,95,95,99,2, + 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67, + 0,0,0,115,16,0,0,0,124,1,0,124,0,0,106,0, + 0,131,0,0,107,6,0,83,41,1,78,41,1,114,243,0, + 0,0,41,2,114,108,0,0,0,218,4,105,116,101,109,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,12, + 95,95,99,111,110,116,97,105,110,115,95,95,252,3,0,0, + 115,2,0,0,0,0,1,122,27,95,78,97,109,101,115,112, + 97,99,101,80,97,116,104,46,95,95,99,111,110,116,97,105, + 110,115,95,95,99,2,0,0,0,0,0,0,0,2,0,0, + 0,2,0,0,0,67,0,0,0,115,20,0,0,0,124,0, + 0,106,0,0,106,1,0,124,1,0,131,1,0,1,100,0, + 0,83,41,1,78,41,2,114,236,0,0,0,114,169,0,0, + 0,41,2,114,108,0,0,0,114,248,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,114,169,0,0, + 0,255,3,0,0,115,2,0,0,0,0,1,122,21,95,78, + 97,109,101,115,112,97,99,101,80,97,116,104,46,97,112,112, + 101,110,100,78,41,13,114,112,0,0,0,114,111,0,0,0, + 114,113,0,0,0,114,114,0,0,0,114,188,0,0,0,114, + 242,0,0,0,114,237,0,0,0,114,243,0,0,0,114,245, + 0,0,0,114,246,0,0,0,114,247,0,0,0,114,249,0, + 0,0,114,169,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,114,234,0,0,0, + 203,3,0,0,115,20,0,0,0,12,5,6,2,12,6,12, + 10,12,4,12,13,12,3,12,3,12,3,12,3,114,234,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,64,0,0,0,115,118,0,0,0,101,0,0,90, + 1,0,100,0,0,90,2,0,100,1,0,100,2,0,132,0, + 0,90,3,0,101,4,0,100,3,0,100,4,0,132,0,0, + 131,1,0,90,5,0,100,5,0,100,6,0,132,0,0,90, + 6,0,100,7,0,100,8,0,132,0,0,90,7,0,100,9, + 0,100,10,0,132,0,0,90,8,0,100,11,0,100,12,0, + 132,0,0,90,9,0,100,13,0,100,14,0,132,0,0,90, + 10,0,100,15,0,100,16,0,132,0,0,90,11,0,100,17, + 0,83,41,18,218,16,95,78,97,109,101,115,112,97,99,101, + 76,111,97,100,101,114,99,4,0,0,0,0,0,0,0,4, + 0,0,0,4,0,0,0,67,0,0,0,115,25,0,0,0, + 116,0,0,124,1,0,124,2,0,124,3,0,131,3,0,124, + 0,0,95,1,0,100,0,0,83,41,1,78,41,2,114,234, + 0,0,0,114,236,0,0,0,41,4,114,108,0,0,0,114, + 106,0,0,0,114,35,0,0,0,114,240,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,188,0, + 0,0,5,4,0,0,115,2,0,0,0,0,1,122,25,95, + 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46, + 95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0, + 0,2,0,0,0,2,0,0,0,67,0,0,0,115,16,0, + 0,0,100,1,0,106,0,0,124,1,0,106,1,0,131,1, + 0,83,41,2,122,115,82,101,116,117,114,110,32,114,101,112, + 114,32,102,111,114,32,116,104,101,32,109,111,100,117,108,101, + 46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,109, + 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97, + 116,101,100,46,32,32,84,104,101,32,105,109,112,111,114,116, + 32,109,97,99,104,105,110,101,114,121,32,100,111,101,115,32, + 116,104,101,32,106,111,98,32,105,116,115,101,108,102,46,10, + 10,32,32,32,32,32,32,32,32,122,25,60,109,111,100,117, + 108,101,32,123,33,114,125,32,40,110,97,109,101,115,112,97, + 99,101,41,62,41,2,114,47,0,0,0,114,112,0,0,0, + 41,2,114,174,0,0,0,114,134,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,218,11,109,111,100, + 117,108,101,95,114,101,112,114,8,4,0,0,115,2,0,0, + 0,0,7,122,28,95,78,97,109,101,115,112,97,99,101,76, + 111,97,100,101,114,46,109,111,100,117,108,101,95,114,101,112, + 114,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0, + 0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,41, + 2,78,84,114,4,0,0,0,41,2,114,108,0,0,0,114, + 126,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,162,0,0,0,17,4,0,0,115,2,0,0, + 0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,76, + 111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,101, + 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, + 0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,2, + 78,114,30,0,0,0,114,4,0,0,0,41,2,114,108,0, + 0,0,114,126,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,114,203,0,0,0,20,4,0,0,115, + 2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97, + 99,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117, + 114,99,101,99,2,0,0,0,0,0,0,0,2,0,0,0, + 6,0,0,0,67,0,0,0,115,22,0,0,0,116,0,0, + 100,1,0,100,2,0,100,3,0,100,4,0,100,5,0,131, + 3,1,83,41,6,78,114,30,0,0,0,122,8,60,115,116, + 114,105,110,103,62,114,192,0,0,0,114,205,0,0,0,84, + 41,1,114,206,0,0,0,41,2,114,108,0,0,0,114,126, 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,114,198,0,0,0,87,3,0,0,115,4,0,0,0, - 0,2,12,1,122,27,83,111,117,114,99,101,70,105,108,101, - 76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,116, - 115,99,4,0,0,0,0,0,0,0,5,0,0,0,5,0, - 0,0,67,0,0,0,115,34,0,0,0,116,0,0,124,1, - 0,131,1,0,125,4,0,124,0,0,106,1,0,124,2,0, - 124,3,0,100,1,0,124,4,0,131,2,1,83,41,2,78, - 218,5,95,109,111,100,101,41,2,114,97,0,0,0,114,199, - 0,0,0,41,5,114,108,0,0,0,114,90,0,0,0,114, - 89,0,0,0,114,53,0,0,0,114,42,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,114,200,0, - 0,0,92,3,0,0,115,4,0,0,0,0,2,12,1,122, - 32,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101, - 114,46,95,99,97,99,104,101,95,98,121,116,101,99,111,100, - 101,114,221,0,0,0,105,182,1,0,0,99,3,0,0,0, - 1,0,0,0,9,0,0,0,17,0,0,0,67,0,0,0, - 115,53,1,0,0,116,0,0,124,1,0,131,1,0,92,2, - 0,125,4,0,125,5,0,103,0,0,125,6,0,120,54,0, - 124,4,0,114,80,0,116,1,0,124,4,0,131,1,0,12, - 114,80,0,116,0,0,124,4,0,131,1,0,92,2,0,125, - 4,0,125,7,0,124,6,0,106,2,0,124,7,0,131,1, - 0,1,113,27,0,87,120,132,0,116,3,0,124,6,0,131, - 1,0,68,93,118,0,125,7,0,116,4,0,124,4,0,124, - 7,0,131,2,0,125,4,0,121,17,0,116,5,0,106,6, - 0,124,4,0,131,1,0,1,87,113,94,0,4,116,7,0, - 107,10,0,114,155,0,1,1,1,119,94,0,89,113,94,0, - 4,116,8,0,107,10,0,114,211,0,1,125,8,0,1,122, - 25,0,116,9,0,100,1,0,124,4,0,124,8,0,131,3, - 0,1,100,2,0,83,87,89,100,2,0,100,2,0,125,8, - 0,126,8,0,88,113,94,0,88,113,94,0,87,121,33,0, - 116,10,0,124,1,0,124,2,0,124,3,0,131,3,0,1, - 116,9,0,100,3,0,124,1,0,131,2,0,1,87,110,53, - 0,4,116,8,0,107,10,0,114,48,1,1,125,8,0,1, - 122,21,0,116,9,0,100,1,0,124,1,0,124,8,0,131, - 3,0,1,87,89,100,2,0,100,2,0,125,8,0,126,8, - 0,88,110,1,0,88,100,2,0,83,41,4,122,27,87,114, - 105,116,101,32,98,121,116,101,115,32,100,97,116,97,32,116, - 111,32,97,32,102,105,108,101,46,122,27,99,111,117,108,100, - 32,110,111,116,32,99,114,101,97,116,101,32,123,33,114,125, - 58,32,123,33,114,125,78,122,12,99,114,101,97,116,101,100, - 32,123,33,114,125,41,11,114,38,0,0,0,114,46,0,0, - 0,114,169,0,0,0,114,33,0,0,0,114,28,0,0,0, - 114,3,0,0,0,90,5,109,107,100,105,114,218,15,70,105, - 108,101,69,120,105,115,116,115,69,114,114,111,114,114,40,0, - 0,0,114,105,0,0,0,114,55,0,0,0,41,9,114,108, - 0,0,0,114,35,0,0,0,114,53,0,0,0,114,221,0, - 0,0,218,6,112,97,114,101,110,116,114,94,0,0,0,114, - 27,0,0,0,114,23,0,0,0,114,202,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,114,199,0, - 0,0,97,3,0,0,115,38,0,0,0,0,2,18,1,6, - 2,22,1,18,1,17,2,19,1,15,1,3,1,17,1,13, - 2,7,1,18,3,16,1,27,1,3,1,16,1,17,1,18, - 2,122,25,83,111,117,114,99,101,70,105,108,101,76,111,97, - 100,101,114,46,115,101,116,95,100,97,116,97,78,41,7,114, - 112,0,0,0,114,111,0,0,0,114,113,0,0,0,114,114, - 0,0,0,114,198,0,0,0,114,200,0,0,0,114,199,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,114,219,0,0,0,83,3,0,0,115, - 8,0,0,0,12,2,6,2,12,5,12,5,114,219,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,64,0,0,0,115,46,0,0,0,101,0,0,90,1, - 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0, - 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132, - 0,0,90,5,0,100,6,0,83,41,7,218,20,83,111,117, - 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101, - 114,122,45,76,111,97,100,101,114,32,119,104,105,99,104,32, - 104,97,110,100,108,101,115,32,115,111,117,114,99,101,108,101, - 115,115,32,102,105,108,101,32,105,109,112,111,114,116,115,46, - 99,2,0,0,0,0,0,0,0,5,0,0,0,6,0,0, - 0,67,0,0,0,115,76,0,0,0,124,0,0,106,0,0, - 124,1,0,131,1,0,125,2,0,124,0,0,106,1,0,124, - 2,0,131,1,0,125,3,0,116,2,0,124,3,0,100,1, - 0,124,1,0,100,2,0,124,2,0,131,1,2,125,4,0, - 116,3,0,124,4,0,100,1,0,124,1,0,100,3,0,124, - 2,0,131,1,2,83,41,4,78,114,106,0,0,0,114,35, - 0,0,0,114,89,0,0,0,41,4,114,163,0,0,0,114, - 201,0,0,0,114,146,0,0,0,114,152,0,0,0,41,5, - 114,108,0,0,0,114,126,0,0,0,114,35,0,0,0,114, - 53,0,0,0,114,210,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,5,0,0,0,114,190,0,0,0,130,3,0, - 0,115,8,0,0,0,0,1,15,1,15,1,24,1,122,29, - 83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,111, + 0,0,114,190,0,0,0,23,4,0,0,115,2,0,0,0, + 0,1,122,25,95,78,97,109,101,115,112,97,99,101,76,111, 97,100,101,114,46,103,101,116,95,99,111,100,101,99,2,0, 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0, - 0,0,115,4,0,0,0,100,1,0,83,41,2,122,39,82, - 101,116,117,114,110,32,78,111,110,101,32,97,115,32,116,104, - 101,114,101,32,105,115,32,110,111,32,115,111,117,114,99,101, - 32,99,111,100,101,46,78,114,4,0,0,0,41,2,114,108, - 0,0,0,114,126,0,0,0,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,114,203,0,0,0,136,3,0,0, - 115,2,0,0,0,0,2,122,31,83,111,117,114,99,101,108, - 101,115,115,70,105,108,101,76,111,97,100,101,114,46,103,101, - 116,95,115,111,117,114,99,101,78,41,6,114,112,0,0,0, - 114,111,0,0,0,114,113,0,0,0,114,114,0,0,0,114, - 190,0,0,0,114,203,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,114,224,0, - 0,0,126,3,0,0,115,6,0,0,0,12,2,6,2,12, - 6,114,224,0,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,64,0,0,0,115,130,0,0,0, + 0,0,115,4,0,0,0,100,1,0,83,41,2,122,42,85, + 115,101,32,100,101,102,97,117,108,116,32,115,101,109,97,110, + 116,105,99,115,32,102,111,114,32,109,111,100,117,108,101,32, + 99,114,101,97,116,105,111,110,46,78,114,4,0,0,0,41, + 2,114,108,0,0,0,114,133,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,114,189,0,0,0,26, + 4,0,0,115,0,0,0,0,122,30,95,78,97,109,101,115, + 112,97,99,101,76,111,97,100,101,114,46,99,114,101,97,116, + 101,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, + 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0, + 0,0,100,0,0,83,41,1,78,114,4,0,0,0,41,2, + 114,108,0,0,0,114,134,0,0,0,114,4,0,0,0,114, + 4,0,0,0,114,5,0,0,0,114,193,0,0,0,29,4, + 0,0,115,2,0,0,0,0,1,122,28,95,78,97,109,101, + 115,112,97,99,101,76,111,97,100,101,114,46,101,120,101,99, + 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,67,0,0,0,115,29,0,0, + 0,116,0,0,100,1,0,124,0,0,106,1,0,131,2,0, + 1,116,2,0,124,0,0,124,1,0,131,2,0,83,41,2, + 122,98,76,111,97,100,32,97,32,110,97,109,101,115,112,97, + 99,101,32,109,111,100,117,108,101,46,10,10,32,32,32,32, + 32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,32, + 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32, + 85,115,101,32,101,120,101,99,95,109,111,100,117,108,101,40, + 41,32,105,110,115,116,101,97,100,46,10,10,32,32,32,32, + 32,32,32,32,122,38,110,97,109,101,115,112,97,99,101,32, + 109,111,100,117,108,101,32,108,111,97,100,101,100,32,119,105, + 116,104,32,112,97,116,104,32,123,33,114,125,41,3,114,105, + 0,0,0,114,236,0,0,0,114,135,0,0,0,41,2,114, + 108,0,0,0,114,126,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,5,0,0,0,114,194,0,0,0,32,4,0, + 0,115,4,0,0,0,0,7,16,1,122,28,95,78,97,109, + 101,115,112,97,99,101,76,111,97,100,101,114,46,108,111,97, + 100,95,109,111,100,117,108,101,78,41,12,114,112,0,0,0, + 114,111,0,0,0,114,113,0,0,0,114,188,0,0,0,114, + 186,0,0,0,114,251,0,0,0,114,162,0,0,0,114,203, + 0,0,0,114,190,0,0,0,114,189,0,0,0,114,193,0, + 0,0,114,194,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,114,250,0,0,0, + 4,4,0,0,115,16,0,0,0,12,1,12,3,18,9,12, + 3,12,3,12,3,12,3,12,3,114,250,0,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,64, + 0,0,0,115,160,0,0,0,101,0,0,90,1,0,100,0, + 0,90,2,0,100,1,0,90,3,0,101,4,0,100,2,0, + 100,3,0,132,0,0,131,1,0,90,5,0,101,4,0,100, + 4,0,100,5,0,132,0,0,131,1,0,90,6,0,101,4, + 0,100,6,0,100,7,0,132,0,0,131,1,0,90,7,0, + 101,4,0,100,8,0,100,9,0,132,0,0,131,1,0,90, + 8,0,101,4,0,100,10,0,100,11,0,100,12,0,132,1, + 0,131,1,0,90,9,0,101,4,0,100,10,0,100,10,0, + 100,13,0,100,14,0,132,2,0,131,1,0,90,10,0,101, + 4,0,100,10,0,100,15,0,100,16,0,132,1,0,131,1, + 0,90,11,0,100,10,0,83,41,17,218,10,80,97,116,104, + 70,105,110,100,101,114,122,62,77,101,116,97,32,112,97,116, + 104,32,102,105,110,100,101,114,32,102,111,114,32,115,121,115, + 46,112,97,116,104,32,97,110,100,32,112,97,99,107,97,103, + 101,32,95,95,112,97,116,104,95,95,32,97,116,116,114,105, + 98,117,116,101,115,46,99,1,0,0,0,0,0,0,0,2, + 0,0,0,4,0,0,0,67,0,0,0,115,55,0,0,0, + 120,48,0,116,0,0,106,1,0,106,2,0,131,0,0,68, + 93,31,0,125,1,0,116,3,0,124,1,0,100,1,0,131, + 2,0,114,16,0,124,1,0,106,4,0,131,0,0,1,113, + 16,0,87,100,2,0,83,41,3,122,125,67,97,108,108,32, + 116,104,101,32,105,110,118,97,108,105,100,97,116,101,95,99, + 97,99,104,101,115,40,41,32,109,101,116,104,111,100,32,111, + 110,32,97,108,108,32,112,97,116,104,32,101,110,116,114,121, + 32,102,105,110,100,101,114,115,10,32,32,32,32,32,32,32, + 32,115,116,111,114,101,100,32,105,110,32,115,121,115,46,112, + 97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99, + 104,101,115,32,40,119,104,101,114,101,32,105,109,112,108,101, + 109,101,110,116,101,100,41,46,218,17,105,110,118,97,108,105, + 100,97,116,101,95,99,97,99,104,101,115,78,41,5,114,7, + 0,0,0,218,19,112,97,116,104,95,105,109,112,111,114,116, + 101,114,95,99,97,99,104,101,218,6,118,97,108,117,101,115, + 114,115,0,0,0,114,253,0,0,0,41,2,114,174,0,0, + 0,218,6,102,105,110,100,101,114,114,4,0,0,0,114,4, + 0,0,0,114,5,0,0,0,114,253,0,0,0,49,4,0, + 0,115,6,0,0,0,0,4,22,1,15,1,122,28,80,97, + 116,104,70,105,110,100,101,114,46,105,110,118,97,108,105,100, + 97,116,101,95,99,97,99,104,101,115,99,2,0,0,0,0, + 0,0,0,3,0,0,0,12,0,0,0,67,0,0,0,115, + 107,0,0,0,116,0,0,106,1,0,100,1,0,107,9,0, + 114,41,0,116,0,0,106,1,0,12,114,41,0,116,2,0, + 106,3,0,100,2,0,116,4,0,131,2,0,1,120,59,0, + 116,0,0,106,1,0,68,93,44,0,125,2,0,121,14,0, + 124,2,0,124,1,0,131,1,0,83,87,113,51,0,4,116, + 5,0,107,10,0,114,94,0,1,1,1,119,51,0,89,113, + 51,0,88,113,51,0,87,100,1,0,83,100,1,0,83,41, + 3,122,113,83,101,97,114,99,104,32,115,101,113,117,101,110, + 99,101,32,111,102,32,104,111,111,107,115,32,102,111,114,32, + 97,32,102,105,110,100,101,114,32,102,111,114,32,39,112,97, + 116,104,39,46,10,10,32,32,32,32,32,32,32,32,73,102, + 32,39,104,111,111,107,115,39,32,105,115,32,102,97,108,115, + 101,32,116,104,101,110,32,117,115,101,32,115,121,115,46,112, + 97,116,104,95,104,111,111,107,115,46,10,10,32,32,32,32, + 32,32,32,32,78,122,23,115,121,115,46,112,97,116,104,95, + 104,111,111,107,115,32,105,115,32,101,109,112,116,121,41,6, + 114,7,0,0,0,218,10,112,97,116,104,95,104,111,111,107, + 115,114,60,0,0,0,114,61,0,0,0,114,125,0,0,0, + 114,107,0,0,0,41,3,114,174,0,0,0,114,35,0,0, + 0,90,4,104,111,111,107,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,218,11,95,112,97,116,104,95,104,111, + 111,107,115,57,4,0,0,115,16,0,0,0,0,7,25,1, + 16,1,16,1,3,1,14,1,13,1,12,2,122,22,80,97, + 116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,104, + 111,111,107,115,99,2,0,0,0,0,0,0,0,3,0,0, + 0,19,0,0,0,67,0,0,0,115,123,0,0,0,124,1, + 0,100,1,0,107,2,0,114,53,0,121,16,0,116,0,0, + 106,1,0,131,0,0,125,1,0,87,110,22,0,4,116,2, + 0,107,10,0,114,52,0,1,1,1,100,2,0,83,89,110, + 1,0,88,121,17,0,116,3,0,106,4,0,124,1,0,25, + 125,2,0,87,110,46,0,4,116,5,0,107,10,0,114,118, + 0,1,1,1,124,0,0,106,6,0,124,1,0,131,1,0, + 125,2,0,124,2,0,116,3,0,106,4,0,124,1,0,60, + 89,110,1,0,88,124,2,0,83,41,3,122,210,71,101,116, + 32,116,104,101,32,102,105,110,100,101,114,32,102,111,114,32, + 116,104,101,32,112,97,116,104,32,101,110,116,114,121,32,102, + 114,111,109,32,115,121,115,46,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,46,10,10,32,32, + 32,32,32,32,32,32,73,102,32,116,104,101,32,112,97,116, + 104,32,101,110,116,114,121,32,105,115,32,110,111,116,32,105, + 110,32,116,104,101,32,99,97,99,104,101,44,32,102,105,110, + 100,32,116,104,101,32,97,112,112,114,111,112,114,105,97,116, + 101,32,102,105,110,100,101,114,10,32,32,32,32,32,32,32, + 32,97,110,100,32,99,97,99,104,101,32,105,116,46,32,73, + 102,32,110,111,32,102,105,110,100,101,114,32,105,115,32,97, + 118,97,105,108,97,98,108,101,44,32,115,116,111,114,101,32, + 78,111,110,101,46,10,10,32,32,32,32,32,32,32,32,114, + 30,0,0,0,78,41,7,114,3,0,0,0,114,45,0,0, + 0,218,17,70,105,108,101,78,111,116,70,111,117,110,100,69, + 114,114,111,114,114,7,0,0,0,114,254,0,0,0,114,142, + 0,0,0,114,2,1,0,0,41,3,114,174,0,0,0,114, + 35,0,0,0,114,0,1,0,0,114,4,0,0,0,114,4, + 0,0,0,114,5,0,0,0,218,20,95,112,97,116,104,95, + 105,109,112,111,114,116,101,114,95,99,97,99,104,101,74,4, + 0,0,115,22,0,0,0,0,8,12,1,3,1,16,1,13, + 3,9,1,3,1,17,1,13,1,15,1,18,1,122,31,80, + 97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95, + 105,109,112,111,114,116,101,114,95,99,97,99,104,101,99,3, + 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,67, + 0,0,0,115,116,0,0,0,116,0,0,124,2,0,100,1, + 0,131,2,0,114,39,0,124,2,0,106,1,0,124,1,0, + 131,1,0,92,2,0,125,3,0,125,4,0,110,21,0,124, + 2,0,106,2,0,124,1,0,131,1,0,125,3,0,103,0, + 0,125,4,0,124,3,0,100,0,0,107,9,0,114,85,0, + 116,3,0,124,1,0,124,3,0,131,2,0,83,116,4,0, + 106,5,0,124,1,0,100,0,0,131,2,0,125,5,0,124, + 4,0,124,5,0,95,6,0,124,5,0,83,41,2,78,114, + 124,0,0,0,41,7,114,115,0,0,0,114,124,0,0,0, + 114,185,0,0,0,114,131,0,0,0,114,121,0,0,0,114, + 166,0,0,0,114,164,0,0,0,41,6,114,174,0,0,0, + 114,126,0,0,0,114,0,1,0,0,114,127,0,0,0,114, + 128,0,0,0,114,133,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,5,0,0,0,218,16,95,108,101,103,97,99, + 121,95,103,101,116,95,115,112,101,99,96,4,0,0,115,18, + 0,0,0,0,4,15,1,24,2,15,1,6,1,12,1,13, + 1,18,1,9,1,122,27,80,97,116,104,70,105,110,100,101, + 114,46,95,108,101,103,97,99,121,95,103,101,116,95,115,112, + 101,99,78,99,4,0,0,0,0,0,0,0,9,0,0,0, + 5,0,0,0,67,0,0,0,115,243,0,0,0,103,0,0, + 125,4,0,120,230,0,124,2,0,68,93,191,0,125,5,0, + 116,0,0,124,5,0,116,1,0,116,2,0,102,2,0,131, + 2,0,115,43,0,113,13,0,124,0,0,106,3,0,124,5, + 0,131,1,0,125,6,0,124,6,0,100,1,0,107,9,0, + 114,13,0,116,4,0,124,6,0,100,2,0,131,2,0,114, + 106,0,124,6,0,106,5,0,124,1,0,124,3,0,131,2, + 0,125,7,0,110,18,0,124,0,0,106,6,0,124,1,0, + 124,6,0,131,2,0,125,7,0,124,7,0,100,1,0,107, + 8,0,114,139,0,113,13,0,124,7,0,106,7,0,100,1, + 0,107,9,0,114,158,0,124,7,0,83,124,7,0,106,8, + 0,125,8,0,124,8,0,100,1,0,107,8,0,114,191,0, + 116,9,0,100,3,0,131,1,0,130,1,0,124,4,0,106, + 10,0,124,8,0,131,1,0,1,113,13,0,87,116,11,0, + 106,12,0,124,1,0,100,1,0,131,2,0,125,7,0,124, + 4,0,124,7,0,95,8,0,124,7,0,83,100,1,0,83, + 41,4,122,63,70,105,110,100,32,116,104,101,32,108,111,97, + 100,101,114,32,111,114,32,110,97,109,101,115,112,97,99,101, + 95,112,97,116,104,32,102,111,114,32,116,104,105,115,32,109, + 111,100,117,108,101,47,112,97,99,107,97,103,101,32,110,97, + 109,101,46,78,114,184,0,0,0,122,19,115,112,101,99,32, + 109,105,115,115,105,110,103,32,108,111,97,100,101,114,41,13, + 114,148,0,0,0,114,69,0,0,0,218,5,98,121,116,101, + 115,114,4,1,0,0,114,115,0,0,0,114,184,0,0,0, + 114,5,1,0,0,114,127,0,0,0,114,164,0,0,0,114, + 107,0,0,0,114,154,0,0,0,114,121,0,0,0,114,166, + 0,0,0,41,9,114,174,0,0,0,114,126,0,0,0,114, + 35,0,0,0,114,183,0,0,0,218,14,110,97,109,101,115, + 112,97,99,101,95,112,97,116,104,90,5,101,110,116,114,121, + 114,0,1,0,0,114,133,0,0,0,114,128,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,9, + 95,103,101,116,95,115,112,101,99,111,4,0,0,115,40,0, + 0,0,0,5,6,1,13,1,21,1,3,1,15,1,12,1, + 15,1,21,2,18,1,12,1,3,1,15,1,4,1,9,1, + 12,1,12,5,17,2,18,1,9,1,122,20,80,97,116,104, + 70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,99, + 99,4,0,0,0,0,0,0,0,6,0,0,0,4,0,0, + 0,67,0,0,0,115,140,0,0,0,124,2,0,100,1,0, + 107,8,0,114,21,0,116,0,0,106,1,0,125,2,0,124, + 0,0,106,2,0,124,1,0,124,2,0,124,3,0,131,3, + 0,125,4,0,124,4,0,100,1,0,107,8,0,114,58,0, + 100,1,0,83,124,4,0,106,3,0,100,1,0,107,8,0, + 114,132,0,124,4,0,106,4,0,125,5,0,124,5,0,114, + 125,0,100,2,0,124,4,0,95,5,0,116,6,0,124,1, + 0,124,5,0,124,0,0,106,2,0,131,3,0,124,4,0, + 95,4,0,124,4,0,83,100,1,0,83,110,4,0,124,4, + 0,83,100,1,0,83,41,3,122,98,102,105,110,100,32,116, + 104,101,32,109,111,100,117,108,101,32,111,110,32,115,121,115, + 46,112,97,116,104,32,111,114,32,39,112,97,116,104,39,32, + 98,97,115,101,100,32,111,110,32,115,121,115,46,112,97,116, + 104,95,104,111,111,107,115,32,97,110,100,10,32,32,32,32, + 32,32,32,32,115,121,115,46,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,46,78,90,9,110, + 97,109,101,115,112,97,99,101,41,7,114,7,0,0,0,114, + 35,0,0,0,114,8,1,0,0,114,127,0,0,0,114,164, + 0,0,0,114,161,0,0,0,114,234,0,0,0,41,6,114, + 174,0,0,0,114,126,0,0,0,114,35,0,0,0,114,183, + 0,0,0,114,133,0,0,0,114,7,1,0,0,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,114,184,0,0, + 0,143,4,0,0,115,26,0,0,0,0,4,12,1,9,1, + 21,1,12,1,4,1,15,1,9,1,6,3,9,1,24,1, + 4,2,7,2,122,20,80,97,116,104,70,105,110,100,101,114, + 46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,67,0,0,0,115, + 41,0,0,0,124,0,0,106,0,0,124,1,0,124,2,0, + 131,2,0,125,3,0,124,3,0,100,1,0,107,8,0,114, + 34,0,100,1,0,83,124,3,0,106,1,0,83,41,2,122, + 170,102,105,110,100,32,116,104,101,32,109,111,100,117,108,101, + 32,111,110,32,115,121,115,46,112,97,116,104,32,111,114,32, + 39,112,97,116,104,39,32,98,97,115,101,100,32,111,110,32, + 115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,97, + 110,100,10,32,32,32,32,32,32,32,32,115,121,115,46,112, + 97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99, + 104,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105, + 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,46,32,32,85,115,101,32,102,105,110, + 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100, + 46,10,10,32,32,32,32,32,32,32,32,78,41,2,114,184, + 0,0,0,114,127,0,0,0,41,4,114,174,0,0,0,114, + 126,0,0,0,114,35,0,0,0,114,133,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,185,0, + 0,0,165,4,0,0,115,8,0,0,0,0,8,18,1,12, + 1,4,1,122,22,80,97,116,104,70,105,110,100,101,114,46, + 102,105,110,100,95,109,111,100,117,108,101,41,12,114,112,0, + 0,0,114,111,0,0,0,114,113,0,0,0,114,114,0,0, + 0,114,186,0,0,0,114,253,0,0,0,114,2,1,0,0, + 114,4,1,0,0,114,5,1,0,0,114,8,1,0,0,114, + 184,0,0,0,114,185,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,252,0, + 0,0,45,4,0,0,115,22,0,0,0,12,2,6,2,18, + 8,18,17,18,22,18,15,3,1,18,31,3,1,21,21,3, + 1,114,252,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,64,0,0,0,115,133,0,0,0, 101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,90, 3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,4, - 0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,0, - 132,0,0,90,6,0,101,7,0,100,8,0,100,9,0,132, - 0,0,131,1,0,90,8,0,100,10,0,100,11,0,132,0, - 0,90,9,0,100,12,0,100,13,0,132,0,0,90,10,0, - 100,14,0,100,15,0,132,0,0,90,11,0,101,7,0,100, - 16,0,100,17,0,132,0,0,131,1,0,90,12,0,100,18, - 0,83,41,19,218,19,69,120,116,101,110,115,105,111,110,70, - 105,108,101,76,111,97,100,101,114,122,93,76,111,97,100,101, - 114,32,102,111,114,32,101,120,116,101,110,115,105,111,110,32, - 109,111,100,117,108,101,115,46,10,10,32,32,32,32,84,104, - 101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,115, - 32,100,101,115,105,103,110,101,100,32,116,111,32,119,111,114, - 107,32,119,105,116,104,32,70,105,108,101,70,105,110,100,101, - 114,46,10,10,32,32,32,32,99,3,0,0,0,0,0,0, - 0,3,0,0,0,2,0,0,0,67,0,0,0,115,22,0, - 0,0,124,1,0,124,0,0,95,0,0,124,2,0,124,0, - 0,95,1,0,100,0,0,83,41,1,78,41,2,114,106,0, - 0,0,114,35,0,0,0,41,3,114,108,0,0,0,114,106, - 0,0,0,114,35,0,0,0,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,114,188,0,0,0,153,3,0,0, - 115,4,0,0,0,0,1,9,1,122,28,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95, - 95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,0, - 2,0,0,0,2,0,0,0,67,0,0,0,115,34,0,0, - 0,124,0,0,106,0,0,124,1,0,106,0,0,107,2,0, - 111,33,0,124,0,0,106,1,0,124,1,0,106,1,0,107, - 2,0,83,41,1,78,41,2,114,212,0,0,0,114,118,0, - 0,0,41,2,114,108,0,0,0,114,213,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,114,214,0, - 0,0,157,3,0,0,115,4,0,0,0,0,1,18,1,122, - 26,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, - 97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,0, - 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0, - 115,26,0,0,0,116,0,0,124,0,0,106,1,0,131,1, - 0,116,0,0,124,0,0,106,2,0,131,1,0,65,83,41, - 1,78,41,3,114,215,0,0,0,114,106,0,0,0,114,35, - 0,0,0,41,1,114,108,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,216,0,0,0,161,3, - 0,0,115,2,0,0,0,0,1,122,28,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95, - 95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,0, - 4,0,0,0,11,0,0,0,67,0,0,0,115,183,0,0, - 0,116,0,0,106,1,0,124,1,0,131,1,0,143,32,0, - 1,116,0,0,106,2,0,116,3,0,106,4,0,124,1,0, - 124,0,0,106,5,0,131,3,0,125,2,0,87,100,1,0, - 81,88,116,6,0,100,2,0,124,0,0,106,5,0,131,2, - 0,1,124,0,0,106,7,0,124,1,0,131,1,0,125,3, - 0,124,3,0,114,127,0,116,8,0,124,2,0,100,3,0, - 131,2,0,12,114,127,0,116,9,0,124,0,0,106,5,0, - 131,1,0,100,4,0,25,103,1,0,124,2,0,95,10,0, - 124,0,0,124,2,0,95,11,0,124,2,0,106,12,0,124, - 2,0,95,13,0,124,3,0,115,179,0,124,2,0,106,13, - 0,106,14,0,100,5,0,131,1,0,100,4,0,25,124,2, - 0,95,13,0,124,2,0,83,41,6,122,25,76,111,97,100, - 32,97,110,32,101,120,116,101,110,115,105,111,110,32,109,111, - 100,117,108,101,46,78,122,33,101,120,116,101,110,115,105,111, - 110,32,109,111,100,117,108,101,32,108,111,97,100,101,100,32, - 102,114,111,109,32,123,33,114,125,218,8,95,95,112,97,116, - 104,95,95,114,59,0,0,0,114,58,0,0,0,41,15,114, - 121,0,0,0,90,13,95,77,97,110,97,103,101,82,101,108, - 111,97,100,114,191,0,0,0,114,150,0,0,0,90,12,108, - 111,97,100,95,100,121,110,97,109,105,99,114,35,0,0,0, - 114,105,0,0,0,114,162,0,0,0,114,115,0,0,0,114, - 38,0,0,0,114,226,0,0,0,218,10,95,95,108,111,97, - 100,101,114,95,95,114,112,0,0,0,218,11,95,95,112,97, - 99,107,97,103,101,95,95,114,32,0,0,0,41,4,114,108, - 0,0,0,114,126,0,0,0,114,134,0,0,0,114,162,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,114,194,0,0,0,164,3,0,0,115,24,0,0,0,0, - 5,16,1,12,1,21,1,16,1,15,1,22,1,25,1,9, - 1,12,1,6,1,25,1,122,31,69,120,116,101,110,115,105, - 111,110,70,105,108,101,76,111,97,100,101,114,46,108,111,97, - 100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,4,0,0,0,3,0,0,0,115,48,0, - 0,0,116,0,0,124,0,0,106,1,0,131,1,0,100,1, - 0,25,137,0,0,116,2,0,135,0,0,102,1,0,100,2, - 0,100,3,0,134,0,0,116,3,0,68,131,1,0,131,1, - 0,83,41,4,122,49,82,101,116,117,114,110,32,84,114,117, - 101,32,105,102,32,116,104,101,32,101,120,116,101,110,115,105, - 111,110,32,109,111,100,117,108,101,32,105,115,32,97,32,112, - 97,99,107,97,103,101,46,114,29,0,0,0,99,1,0,0, - 0,0,0,0,0,2,0,0,0,4,0,0,0,51,0,0, - 0,115,31,0,0,0,124,0,0,93,21,0,125,1,0,136, - 0,0,100,0,0,124,1,0,23,107,2,0,86,1,113,3, - 0,100,1,0,83,41,2,114,188,0,0,0,78,114,4,0, - 0,0,41,2,114,22,0,0,0,218,6,115,117,102,102,105, - 120,41,1,218,9,102,105,108,101,95,110,97,109,101,114,4, - 0,0,0,114,5,0,0,0,250,9,60,103,101,110,101,120, - 112,114,62,185,3,0,0,115,2,0,0,0,6,1,122,49, - 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, - 100,101,114,46,105,115,95,112,97,99,107,97,103,101,46,60, - 108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114, - 62,41,4,114,38,0,0,0,114,35,0,0,0,218,3,97, - 110,121,218,18,69,88,84,69,78,83,73,79,78,95,83,85, - 70,70,73,88,69,83,41,2,114,108,0,0,0,114,126,0, - 0,0,114,4,0,0,0,41,1,114,230,0,0,0,114,5, - 0,0,0,114,162,0,0,0,182,3,0,0,115,6,0,0, - 0,0,2,19,1,18,1,122,30,69,120,116,101,110,115,105, - 111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,95, - 112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,0, - 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, - 0,100,1,0,83,41,2,122,63,82,101,116,117,114,110,32, - 78,111,110,101,32,97,115,32,97,110,32,101,120,116,101,110, - 115,105,111,110,32,109,111,100,117,108,101,32,99,97,110,110, - 111,116,32,99,114,101,97,116,101,32,97,32,99,111,100,101, - 32,111,98,106,101,99,116,46,78,114,4,0,0,0,41,2, - 114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,190,0,0,0,188,3, - 0,0,115,2,0,0,0,0,2,122,28,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,103, - 101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0, - 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, - 0,100,1,0,83,41,2,122,53,82,101,116,117,114,110,32, - 78,111,110,101,32,97,115,32,101,120,116,101,110,115,105,111, - 110,32,109,111,100,117,108,101,115,32,104,97,118,101,32,110, - 111,32,115,111,117,114,99,101,32,99,111,100,101,46,78,114, - 4,0,0,0,41,2,114,108,0,0,0,114,126,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 203,0,0,0,192,3,0,0,115,2,0,0,0,0,2,122, - 30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, - 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,99, - 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, - 67,0,0,0,115,7,0,0,0,124,0,0,106,0,0,83, - 41,1,122,58,82,101,116,117,114,110,32,116,104,101,32,112, - 97,116,104,32,116,111,32,116,104,101,32,115,111,117,114,99, - 101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,32, - 98,121,32,116,104,101,32,102,105,110,100,101,114,46,41,1, - 114,35,0,0,0,41,2,114,108,0,0,0,114,126,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,163,0,0,0,196,3,0,0,115,2,0,0,0,0,3, - 122,32,69,120,116,101,110,115,105,111,110,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97, - 109,101,78,41,13,114,112,0,0,0,114,111,0,0,0,114, - 113,0,0,0,114,114,0,0,0,114,188,0,0,0,114,214, - 0,0,0,114,216,0,0,0,114,123,0,0,0,114,194,0, - 0,0,114,162,0,0,0,114,190,0,0,0,114,203,0,0, - 0,114,163,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,114,225,0,0,0,145, - 3,0,0,115,18,0,0,0,12,6,6,2,12,4,12,4, - 12,3,18,18,12,6,12,4,12,4,114,225,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 64,0,0,0,115,130,0,0,0,101,0,0,90,1,0,100, - 0,0,90,2,0,100,1,0,90,3,0,100,2,0,100,3, - 0,132,0,0,90,4,0,100,4,0,100,5,0,132,0,0, - 90,5,0,100,6,0,100,7,0,132,0,0,90,6,0,100, - 8,0,100,9,0,132,0,0,90,7,0,100,10,0,100,11, - 0,132,0,0,90,8,0,100,12,0,100,13,0,132,0,0, - 90,9,0,100,14,0,100,15,0,132,0,0,90,10,0,100, - 16,0,100,17,0,132,0,0,90,11,0,100,18,0,100,19, - 0,132,0,0,90,12,0,100,20,0,83,41,21,218,14,95, - 78,97,109,101,115,112,97,99,101,80,97,116,104,97,38,1, - 0,0,82,101,112,114,101,115,101,110,116,115,32,97,32,110, - 97,109,101,115,112,97,99,101,32,112,97,99,107,97,103,101, - 39,115,32,112,97,116,104,46,32,32,73,116,32,117,115,101, - 115,32,116,104,101,32,109,111,100,117,108,101,32,110,97,109, - 101,10,32,32,32,32,116,111,32,102,105,110,100,32,105,116, - 115,32,112,97,114,101,110,116,32,109,111,100,117,108,101,44, - 32,97,110,100,32,102,114,111,109,32,116,104,101,114,101,32, - 105,116,32,108,111,111,107,115,32,117,112,32,116,104,101,32, - 112,97,114,101,110,116,39,115,10,32,32,32,32,95,95,112, - 97,116,104,95,95,46,32,32,87,104,101,110,32,116,104,105, - 115,32,99,104,97,110,103,101,115,44,32,116,104,101,32,109, - 111,100,117,108,101,39,115,32,111,119,110,32,112,97,116,104, - 32,105,115,32,114,101,99,111,109,112,117,116,101,100,44,10, - 32,32,32,32,117,115,105,110,103,32,112,97,116,104,95,102, - 105,110,100,101,114,46,32,32,70,111,114,32,116,111,112,45, - 108,101,118,101,108,32,109,111,100,117,108,101,115,44,32,116, - 104,101,32,112,97,114,101,110,116,32,109,111,100,117,108,101, - 39,115,32,112,97,116,104,10,32,32,32,32,105,115,32,115, - 121,115,46,112,97,116,104,46,99,4,0,0,0,0,0,0, - 0,4,0,0,0,2,0,0,0,67,0,0,0,115,52,0, - 0,0,124,1,0,124,0,0,95,0,0,124,2,0,124,0, - 0,95,1,0,116,2,0,124,0,0,106,3,0,131,0,0, - 131,1,0,124,0,0,95,4,0,124,3,0,124,0,0,95, - 5,0,100,0,0,83,41,1,78,41,6,218,5,95,110,97, - 109,101,218,5,95,112,97,116,104,114,93,0,0,0,218,16, - 95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,104, - 218,17,95,108,97,115,116,95,112,97,114,101,110,116,95,112, - 97,116,104,218,12,95,112,97,116,104,95,102,105,110,100,101, - 114,41,4,114,108,0,0,0,114,106,0,0,0,114,35,0, - 0,0,218,11,112,97,116,104,95,102,105,110,100,101,114,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,188, - 0,0,0,209,3,0,0,115,8,0,0,0,0,1,9,1, - 9,1,21,1,122,23,95,78,97,109,101,115,112,97,99,101, - 80,97,116,104,46,95,95,105,110,105,116,95,95,99,1,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0, - 0,0,115,53,0,0,0,124,0,0,106,0,0,106,1,0, - 100,1,0,131,1,0,92,3,0,125,1,0,125,2,0,125, - 3,0,124,2,0,100,2,0,107,2,0,114,43,0,100,6, - 0,83,124,1,0,100,5,0,102,2,0,83,41,7,122,62, - 82,101,116,117,114,110,115,32,97,32,116,117,112,108,101,32, - 111,102,32,40,112,97,114,101,110,116,45,109,111,100,117,108, - 101,45,110,97,109,101,44,32,112,97,114,101,110,116,45,112, - 97,116,104,45,97,116,116,114,45,110,97,109,101,41,114,58, - 0,0,0,114,30,0,0,0,114,7,0,0,0,114,35,0, - 0,0,114,226,0,0,0,41,2,122,3,115,121,115,122,4, - 112,97,116,104,41,2,114,235,0,0,0,114,32,0,0,0, - 41,4,114,108,0,0,0,114,223,0,0,0,218,3,100,111, - 116,90,2,109,101,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,218,23,95,102,105,110,100,95,112,97,114,101, - 110,116,95,112,97,116,104,95,110,97,109,101,115,215,3,0, - 0,115,8,0,0,0,0,2,27,1,12,2,4,3,122,38, - 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95, - 102,105,110,100,95,112,97,114,101,110,116,95,112,97,116,104, - 95,110,97,109,101,115,99,1,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0, - 124,0,0,106,0,0,131,0,0,92,2,0,125,1,0,125, - 2,0,116,1,0,116,2,0,106,3,0,124,1,0,25,124, - 2,0,131,2,0,83,41,1,78,41,4,114,242,0,0,0, - 114,117,0,0,0,114,7,0,0,0,114,132,0,0,0,41, - 3,114,108,0,0,0,90,18,112,97,114,101,110,116,95,109, - 111,100,117,108,101,95,110,97,109,101,90,14,112,97,116,104, - 95,97,116,116,114,95,110,97,109,101,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,237,0,0,0,225,3, - 0,0,115,4,0,0,0,0,1,18,1,122,31,95,78,97, - 109,101,115,112,97,99,101,80,97,116,104,46,95,103,101,116, - 95,112,97,114,101,110,116,95,112,97,116,104,99,1,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0, - 0,115,118,0,0,0,116,0,0,124,0,0,106,1,0,131, - 0,0,131,1,0,125,1,0,124,1,0,124,0,0,106,2, - 0,107,3,0,114,111,0,124,0,0,106,3,0,124,0,0, - 106,4,0,124,1,0,131,2,0,125,2,0,124,2,0,100, - 0,0,107,9,0,114,102,0,124,2,0,106,5,0,100,0, - 0,107,8,0,114,102,0,124,2,0,106,6,0,114,102,0, - 124,2,0,106,6,0,124,0,0,95,7,0,124,1,0,124, - 0,0,95,2,0,124,0,0,106,7,0,83,41,1,78,41, - 8,114,93,0,0,0,114,237,0,0,0,114,238,0,0,0, - 114,239,0,0,0,114,235,0,0,0,114,127,0,0,0,114, - 164,0,0,0,114,236,0,0,0,41,3,114,108,0,0,0, - 90,11,112,97,114,101,110,116,95,112,97,116,104,114,133,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,218,12,95,114,101,99,97,108,99,117,108,97,116,101,229, - 3,0,0,115,16,0,0,0,0,2,18,1,15,1,21,3, - 27,1,9,1,12,1,9,1,122,27,95,78,97,109,101,115, - 112,97,99,101,80,97,116,104,46,95,114,101,99,97,108,99, - 117,108,97,116,101,99,1,0,0,0,0,0,0,0,1,0, - 0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,116, - 0,0,124,0,0,106,1,0,131,0,0,131,1,0,83,41, - 1,78,41,2,218,4,105,116,101,114,114,243,0,0,0,41, - 1,114,108,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,5,0,0,0,218,8,95,95,105,116,101,114,95,95,242, - 3,0,0,115,2,0,0,0,0,1,122,23,95,78,97,109, - 101,115,112,97,99,101,80,97,116,104,46,95,95,105,116,101, - 114,95,95,99,1,0,0,0,0,0,0,0,1,0,0,0, - 2,0,0,0,67,0,0,0,115,16,0,0,0,116,0,0, - 124,0,0,106,1,0,131,0,0,131,1,0,83,41,1,78, - 41,2,114,31,0,0,0,114,243,0,0,0,41,1,114,108, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,218,7,95,95,108,101,110,95,95,245,3,0,0,115, - 2,0,0,0,0,1,122,22,95,78,97,109,101,115,112,97, - 99,101,80,97,116,104,46,95,95,108,101,110,95,95,99,1, - 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,67, - 0,0,0,115,16,0,0,0,100,1,0,106,0,0,124,0, - 0,106,1,0,131,1,0,83,41,2,78,122,20,95,78,97, - 109,101,115,112,97,99,101,80,97,116,104,40,123,33,114,125, - 41,41,2,114,47,0,0,0,114,236,0,0,0,41,1,114, - 108,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, - 0,0,0,218,8,95,95,114,101,112,114,95,95,248,3,0, - 0,115,2,0,0,0,0,1,122,23,95,78,97,109,101,115, - 112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,95, - 95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0, - 0,0,67,0,0,0,115,16,0,0,0,124,1,0,124,0, - 0,106,0,0,131,0,0,107,6,0,83,41,1,78,41,1, - 114,243,0,0,0,41,2,114,108,0,0,0,218,4,105,116, - 101,109,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,251, - 3,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109, - 101,115,112,97,99,101,80,97,116,104,46,95,95,99,111,110, - 116,97,105,110,115,95,95,99,2,0,0,0,0,0,0,0, - 2,0,0,0,2,0,0,0,67,0,0,0,115,20,0,0, - 0,124,0,0,106,0,0,106,1,0,124,1,0,131,1,0, - 1,100,0,0,83,41,1,78,41,2,114,236,0,0,0,114, - 169,0,0,0,41,2,114,108,0,0,0,114,248,0,0,0, + 0,100,5,0,132,0,0,90,5,0,101,6,0,90,7,0, + 100,6,0,100,7,0,132,0,0,90,8,0,100,8,0,100, + 9,0,132,0,0,90,9,0,100,10,0,100,11,0,100,12, + 0,132,1,0,90,10,0,100,13,0,100,14,0,132,0,0, + 90,11,0,101,12,0,100,15,0,100,16,0,132,0,0,131, + 1,0,90,13,0,100,17,0,100,18,0,132,0,0,90,14, + 0,100,10,0,83,41,19,218,10,70,105,108,101,70,105,110, + 100,101,114,122,172,70,105,108,101,45,98,97,115,101,100,32, + 102,105,110,100,101,114,46,10,10,32,32,32,32,73,110,116, + 101,114,97,99,116,105,111,110,115,32,119,105,116,104,32,116, + 104,101,32,102,105,108,101,32,115,121,115,116,101,109,32,97, + 114,101,32,99,97,99,104,101,100,32,102,111,114,32,112,101, + 114,102,111,114,109,97,110,99,101,44,32,98,101,105,110,103, + 10,32,32,32,32,114,101,102,114,101,115,104,101,100,32,119, + 104,101,110,32,116,104,101,32,100,105,114,101,99,116,111,114, + 121,32,116,104,101,32,102,105,110,100,101,114,32,105,115,32, + 104,97,110,100,108,105,110,103,32,104,97,115,32,98,101,101, + 110,32,109,111,100,105,102,105,101,100,46,10,10,32,32,32, + 32,99,2,0,0,0,0,0,0,0,5,0,0,0,5,0, + 0,0,7,0,0,0,115,122,0,0,0,103,0,0,125,3, + 0,120,52,0,124,2,0,68,93,44,0,92,2,0,137,0, + 0,125,4,0,124,3,0,106,0,0,135,0,0,102,1,0, + 100,1,0,100,2,0,134,0,0,124,4,0,68,131,1,0, + 131,1,0,1,113,13,0,87,124,3,0,124,0,0,95,1, + 0,124,1,0,112,79,0,100,3,0,124,0,0,95,2,0, + 100,6,0,124,0,0,95,3,0,116,4,0,131,0,0,124, + 0,0,95,5,0,116,4,0,131,0,0,124,0,0,95,6, + 0,100,5,0,83,41,7,122,154,73,110,105,116,105,97,108, + 105,122,101,32,119,105,116,104,32,116,104,101,32,112,97,116, + 104,32,116,111,32,115,101,97,114,99,104,32,111,110,32,97, + 110,100,32,97,32,118,97,114,105,97,98,108,101,32,110,117, + 109,98,101,114,32,111,102,10,32,32,32,32,32,32,32,32, + 50,45,116,117,112,108,101,115,32,99,111,110,116,97,105,110, + 105,110,103,32,116,104,101,32,108,111,97,100,101,114,32,97, + 110,100,32,116,104,101,32,102,105,108,101,32,115,117,102,102, + 105,120,101,115,32,116,104,101,32,108,111,97,100,101,114,10, + 32,32,32,32,32,32,32,32,114,101,99,111,103,110,105,122, + 101,115,46,99,1,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,51,0,0,0,115,27,0,0,0,124,0,0, + 93,17,0,125,1,0,124,1,0,136,0,0,102,2,0,86, + 1,113,3,0,100,0,0,83,41,1,78,114,4,0,0,0, + 41,2,114,22,0,0,0,114,229,0,0,0,41,1,114,127, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,231,0, + 0,0,194,4,0,0,115,2,0,0,0,6,0,122,38,70, + 105,108,101,70,105,110,100,101,114,46,95,95,105,110,105,116, + 95,95,46,60,108,111,99,97,108,115,62,46,60,103,101,110, + 101,120,112,114,62,114,58,0,0,0,114,29,0,0,0,78, + 114,87,0,0,0,41,7,114,154,0,0,0,218,8,95,108, + 111,97,100,101,114,115,114,35,0,0,0,218,11,95,112,97, + 116,104,95,109,116,105,109,101,218,3,115,101,116,218,11,95, + 112,97,116,104,95,99,97,99,104,101,218,19,95,114,101,108, + 97,120,101,100,95,112,97,116,104,95,99,97,99,104,101,41, + 5,114,108,0,0,0,114,35,0,0,0,218,14,108,111,97, + 100,101,114,95,100,101,116,97,105,108,115,90,7,108,111,97, + 100,101,114,115,114,171,0,0,0,114,4,0,0,0,41,1, + 114,127,0,0,0,114,5,0,0,0,114,188,0,0,0,188, + 4,0,0,115,16,0,0,0,0,4,6,1,19,1,36,1, + 9,2,15,1,9,1,12,1,122,19,70,105,108,101,70,105, + 110,100,101,114,46,95,95,105,110,105,116,95,95,99,1,0, + 0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,0, + 0,0,115,13,0,0,0,100,3,0,124,0,0,95,0,0, + 100,2,0,83,41,4,122,31,73,110,118,97,108,105,100,97, + 116,101,32,116,104,101,32,100,105,114,101,99,116,111,114,121, + 32,109,116,105,109,101,46,114,29,0,0,0,78,114,87,0, + 0,0,41,1,114,11,1,0,0,41,1,114,108,0,0,0, 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 169,0,0,0,254,3,0,0,115,2,0,0,0,0,1,122, - 21,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, - 97,112,112,101,110,100,78,41,13,114,112,0,0,0,114,111, - 0,0,0,114,113,0,0,0,114,114,0,0,0,114,188,0, - 0,0,114,242,0,0,0,114,237,0,0,0,114,243,0,0, - 0,114,245,0,0,0,114,246,0,0,0,114,247,0,0,0, - 114,249,0,0,0,114,169,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,234, - 0,0,0,202,3,0,0,115,20,0,0,0,12,5,6,2, - 12,6,12,10,12,4,12,13,12,3,12,3,12,3,12,3, - 114,234,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,64,0,0,0,115,118,0,0,0,101, - 0,0,90,1,0,100,0,0,90,2,0,100,1,0,100,2, - 0,132,0,0,90,3,0,101,4,0,100,3,0,100,4,0, - 132,0,0,131,1,0,90,5,0,100,5,0,100,6,0,132, - 0,0,90,6,0,100,7,0,100,8,0,132,0,0,90,7, - 0,100,9,0,100,10,0,132,0,0,90,8,0,100,11,0, - 100,12,0,132,0,0,90,9,0,100,13,0,100,14,0,132, - 0,0,90,10,0,100,15,0,100,16,0,132,0,0,90,11, - 0,100,17,0,83,41,18,218,16,95,78,97,109,101,115,112, - 97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0, - 0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,25, - 0,0,0,116,0,0,124,1,0,124,2,0,124,3,0,131, - 3,0,124,0,0,95,1,0,100,0,0,83,41,1,78,41, - 2,114,234,0,0,0,114,236,0,0,0,41,4,114,108,0, - 0,0,114,106,0,0,0,114,35,0,0,0,114,240,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,188,0,0,0,4,4,0,0,115,2,0,0,0,0,1, - 122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,100, - 101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,0, - 0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,0, - 115,16,0,0,0,100,1,0,106,0,0,124,1,0,106,1, - 0,131,1,0,83,41,2,122,115,82,101,116,117,114,110,32, - 114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100, - 117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104, - 101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112, - 111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111, - 101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108, - 102,46,10,10,32,32,32,32,32,32,32,32,122,25,60,109, - 111,100,117,108,101,32,123,33,114,125,32,40,110,97,109,101, - 115,112,97,99,101,41,62,41,2,114,47,0,0,0,114,112, - 0,0,0,41,2,114,174,0,0,0,114,134,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,11, - 109,111,100,117,108,101,95,114,101,112,114,7,4,0,0,115, - 2,0,0,0,0,7,122,28,95,78,97,109,101,115,112,97, - 99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,95, - 114,101,112,114,99,2,0,0,0,0,0,0,0,2,0,0, - 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, - 0,83,41,2,78,84,114,4,0,0,0,41,2,114,108,0, - 0,0,114,126,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,114,162,0,0,0,16,4,0,0,115, - 2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97, - 99,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107, - 97,103,101,99,2,0,0,0,0,0,0,0,2,0,0,0, - 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,0, - 83,41,2,78,114,30,0,0,0,114,4,0,0,0,41,2, - 114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,203,0,0,0,19,4, - 0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,101, - 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95, - 115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,2, - 0,0,0,6,0,0,0,67,0,0,0,115,22,0,0,0, - 116,0,0,100,1,0,100,2,0,100,3,0,100,4,0,100, - 5,0,131,3,1,83,41,6,78,114,30,0,0,0,122,8, - 60,115,116,114,105,110,103,62,114,192,0,0,0,114,205,0, - 0,0,84,41,1,114,206,0,0,0,41,2,114,108,0,0, - 0,114,126,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,5,0,0,0,114,190,0,0,0,22,4,0,0,115,2, - 0,0,0,0,1,122,25,95,78,97,109,101,115,112,97,99, - 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101, - 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, - 0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,2, - 122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,101, - 109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,117, - 108,101,32,99,114,101,97,116,105,111,110,46,78,114,4,0, - 0,0,41,2,114,108,0,0,0,114,133,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,114,189,0, - 0,0,25,4,0,0,115,0,0,0,0,122,30,95,78,97, - 109,101,115,112,97,99,101,76,111,97,100,101,114,46,99,114, - 101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0, - 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, - 115,4,0,0,0,100,0,0,83,41,1,78,114,4,0,0, - 0,41,2,114,108,0,0,0,114,134,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,114,193,0,0, - 0,28,4,0,0,115,2,0,0,0,0,1,122,28,95,78, - 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101, - 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0, - 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115, - 29,0,0,0,116,0,0,100,1,0,124,0,0,106,1,0, - 131,2,0,1,116,2,0,124,0,0,124,1,0,131,2,0, - 83,41,2,122,98,76,111,97,100,32,97,32,110,97,109,101, - 115,112,97,99,101,32,109,111,100,117,108,101,46,10,10,32, - 32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104, - 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100, - 46,32,32,85,115,101,32,101,120,101,99,95,109,111,100,117, - 108,101,40,41,32,105,110,115,116,101,97,100,46,10,10,32, - 32,32,32,32,32,32,32,122,38,110,97,109,101,115,112,97, - 99,101,32,109,111,100,117,108,101,32,108,111,97,100,101,100, - 32,119,105,116,104,32,112,97,116,104,32,123,33,114,125,41, - 3,114,105,0,0,0,114,236,0,0,0,114,135,0,0,0, - 41,2,114,108,0,0,0,114,126,0,0,0,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,114,194,0,0,0, - 31,4,0,0,115,4,0,0,0,0,7,16,1,122,28,95, - 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46, - 108,111,97,100,95,109,111,100,117,108,101,78,41,12,114,112, - 0,0,0,114,111,0,0,0,114,113,0,0,0,114,188,0, - 0,0,114,186,0,0,0,114,251,0,0,0,114,162,0,0, - 0,114,203,0,0,0,114,190,0,0,0,114,189,0,0,0, - 114,193,0,0,0,114,194,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,250, - 0,0,0,3,4,0,0,115,16,0,0,0,12,1,12,3, - 18,9,12,3,12,3,12,3,12,3,12,3,114,250,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,64,0,0,0,115,160,0,0,0,101,0,0,90,1, - 0,100,0,0,90,2,0,100,1,0,90,3,0,101,4,0, - 100,2,0,100,3,0,132,0,0,131,1,0,90,5,0,101, - 4,0,100,4,0,100,5,0,132,0,0,131,1,0,90,6, - 0,101,4,0,100,6,0,100,7,0,132,0,0,131,1,0, - 90,7,0,101,4,0,100,8,0,100,9,0,132,0,0,131, - 1,0,90,8,0,101,4,0,100,10,0,100,11,0,100,12, - 0,132,1,0,131,1,0,90,9,0,101,4,0,100,10,0, - 100,10,0,100,13,0,100,14,0,132,2,0,131,1,0,90, - 10,0,101,4,0,100,10,0,100,15,0,100,16,0,132,1, - 0,131,1,0,90,11,0,100,10,0,83,41,17,218,10,80, - 97,116,104,70,105,110,100,101,114,122,62,77,101,116,97,32, - 112,97,116,104,32,102,105,110,100,101,114,32,102,111,114,32, - 115,121,115,46,112,97,116,104,32,97,110,100,32,112,97,99, - 107,97,103,101,32,95,95,112,97,116,104,95,95,32,97,116, - 116,114,105,98,117,116,101,115,46,99,1,0,0,0,0,0, - 0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,55, - 0,0,0,120,48,0,116,0,0,106,1,0,106,2,0,131, - 0,0,68,93,31,0,125,1,0,116,3,0,124,1,0,100, - 1,0,131,2,0,114,16,0,124,1,0,106,4,0,131,0, - 0,1,113,16,0,87,100,2,0,83,41,3,122,125,67,97, - 108,108,32,116,104,101,32,105,110,118,97,108,105,100,97,116, - 101,95,99,97,99,104,101,115,40,41,32,109,101,116,104,111, - 100,32,111,110,32,97,108,108,32,112,97,116,104,32,101,110, - 116,114,121,32,102,105,110,100,101,114,115,10,32,32,32,32, - 32,32,32,32,115,116,111,114,101,100,32,105,110,32,115,121, - 115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,95, - 99,97,99,104,101,115,32,40,119,104,101,114,101,32,105,109, - 112,108,101,109,101,110,116,101,100,41,46,218,17,105,110,118, - 97,108,105,100,97,116,101,95,99,97,99,104,101,115,78,41, - 5,114,7,0,0,0,218,19,112,97,116,104,95,105,109,112, - 111,114,116,101,114,95,99,97,99,104,101,218,6,118,97,108, - 117,101,115,114,115,0,0,0,114,253,0,0,0,41,2,114, - 174,0,0,0,218,6,102,105,110,100,101,114,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,114,253,0,0,0, - 48,4,0,0,115,6,0,0,0,0,4,22,1,15,1,122, - 28,80,97,116,104,70,105,110,100,101,114,46,105,110,118,97, + 253,0,0,0,202,4,0,0,115,2,0,0,0,0,2,122, + 28,70,105,108,101,70,105,110,100,101,114,46,105,110,118,97, 108,105,100,97,116,101,95,99,97,99,104,101,115,99,2,0, - 0,0,0,0,0,0,3,0,0,0,12,0,0,0,67,0, - 0,0,115,107,0,0,0,116,0,0,106,1,0,100,1,0, - 107,9,0,114,41,0,116,0,0,106,1,0,12,114,41,0, - 116,2,0,106,3,0,100,2,0,116,4,0,131,2,0,1, - 120,59,0,116,0,0,106,1,0,68,93,44,0,125,2,0, - 121,14,0,124,2,0,124,1,0,131,1,0,83,87,113,51, - 0,4,116,5,0,107,10,0,114,94,0,1,1,1,119,51, - 0,89,113,51,0,88,113,51,0,87,100,1,0,83,100,1, - 0,83,41,3,122,113,83,101,97,114,99,104,32,115,101,113, - 117,101,110,99,101,32,111,102,32,104,111,111,107,115,32,102, - 111,114,32,97,32,102,105,110,100,101,114,32,102,111,114,32, - 39,112,97,116,104,39,46,10,10,32,32,32,32,32,32,32, - 32,73,102,32,39,104,111,111,107,115,39,32,105,115,32,102, - 97,108,115,101,32,116,104,101,110,32,117,115,101,32,115,121, - 115,46,112,97,116,104,95,104,111,111,107,115,46,10,10,32, - 32,32,32,32,32,32,32,78,122,23,115,121,115,46,112,97, - 116,104,95,104,111,111,107,115,32,105,115,32,101,109,112,116, - 121,41,6,114,7,0,0,0,218,10,112,97,116,104,95,104, - 111,111,107,115,114,60,0,0,0,114,61,0,0,0,114,125, - 0,0,0,114,107,0,0,0,41,3,114,174,0,0,0,114, - 35,0,0,0,90,4,104,111,111,107,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,218,11,95,112,97,116,104, - 95,104,111,111,107,115,56,4,0,0,115,16,0,0,0,0, - 7,25,1,16,1,16,1,3,1,14,1,13,1,12,2,122, - 22,80,97,116,104,70,105,110,100,101,114,46,95,112,97,116, - 104,95,104,111,111,107,115,99,2,0,0,0,0,0,0,0, - 3,0,0,0,19,0,0,0,67,0,0,0,115,123,0,0, - 0,124,1,0,100,1,0,107,2,0,114,53,0,121,16,0, - 116,0,0,106,1,0,131,0,0,125,1,0,87,110,22,0, - 4,116,2,0,107,10,0,114,52,0,1,1,1,100,2,0, - 83,89,110,1,0,88,121,17,0,116,3,0,106,4,0,124, - 1,0,25,125,2,0,87,110,46,0,4,116,5,0,107,10, - 0,114,118,0,1,1,1,124,0,0,106,6,0,124,1,0, - 131,1,0,125,2,0,124,2,0,116,3,0,106,4,0,124, - 1,0,60,89,110,1,0,88,124,2,0,83,41,3,122,210, - 71,101,116,32,116,104,101,32,102,105,110,100,101,114,32,102, - 111,114,32,116,104,101,32,112,97,116,104,32,101,110,116,114, - 121,32,102,114,111,109,32,115,121,115,46,112,97,116,104,95, - 105,109,112,111,114,116,101,114,95,99,97,99,104,101,46,10, - 10,32,32,32,32,32,32,32,32,73,102,32,116,104,101,32, - 112,97,116,104,32,101,110,116,114,121,32,105,115,32,110,111, - 116,32,105,110,32,116,104,101,32,99,97,99,104,101,44,32, - 102,105,110,100,32,116,104,101,32,97,112,112,114,111,112,114, - 105,97,116,101,32,102,105,110,100,101,114,10,32,32,32,32, - 32,32,32,32,97,110,100,32,99,97,99,104,101,32,105,116, - 46,32,73,102,32,110,111,32,102,105,110,100,101,114,32,105, - 115,32,97,118,97,105,108,97,98,108,101,44,32,115,116,111, - 114,101,32,78,111,110,101,46,10,10,32,32,32,32,32,32, - 32,32,114,30,0,0,0,78,41,7,114,3,0,0,0,114, - 45,0,0,0,218,17,70,105,108,101,78,111,116,70,111,117, - 110,100,69,114,114,111,114,114,7,0,0,0,114,254,0,0, - 0,114,142,0,0,0,114,2,1,0,0,41,3,114,174,0, - 0,0,114,35,0,0,0,114,0,1,0,0,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,218,20,95,112,97, - 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104, - 101,73,4,0,0,115,22,0,0,0,0,8,12,1,3,1, - 16,1,13,3,9,1,3,1,17,1,13,1,15,1,18,1, - 122,31,80,97,116,104,70,105,110,100,101,114,46,95,112,97, - 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104, - 101,99,3,0,0,0,0,0,0,0,6,0,0,0,3,0, - 0,0,67,0,0,0,115,116,0,0,0,116,0,0,124,2, - 0,100,1,0,131,2,0,114,39,0,124,2,0,106,1,0, - 124,1,0,131,1,0,92,2,0,125,3,0,125,4,0,110, - 21,0,124,2,0,106,2,0,124,1,0,131,1,0,125,3, - 0,103,0,0,125,4,0,124,3,0,100,0,0,107,9,0, - 114,85,0,116,3,0,124,1,0,124,3,0,131,2,0,83, - 116,4,0,106,5,0,124,1,0,100,0,0,131,2,0,125, - 5,0,124,4,0,124,5,0,95,6,0,124,5,0,83,41, - 2,78,114,124,0,0,0,41,7,114,115,0,0,0,114,124, - 0,0,0,114,185,0,0,0,114,131,0,0,0,114,121,0, - 0,0,114,166,0,0,0,114,164,0,0,0,41,6,114,174, - 0,0,0,114,126,0,0,0,114,0,1,0,0,114,127,0, - 0,0,114,128,0,0,0,114,133,0,0,0,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,218,16,95,108,101, - 103,97,99,121,95,103,101,116,95,115,112,101,99,95,4,0, - 0,115,18,0,0,0,0,4,15,1,24,2,15,1,6,1, - 12,1,13,1,18,1,9,1,122,27,80,97,116,104,70,105, - 110,100,101,114,46,95,108,101,103,97,99,121,95,103,101,116, - 95,115,112,101,99,78,99,4,0,0,0,0,0,0,0,9, - 0,0,0,5,0,0,0,67,0,0,0,115,243,0,0,0, - 103,0,0,125,4,0,120,230,0,124,2,0,68,93,191,0, - 125,5,0,116,0,0,124,5,0,116,1,0,116,2,0,102, - 2,0,131,2,0,115,43,0,113,13,0,124,0,0,106,3, - 0,124,5,0,131,1,0,125,6,0,124,6,0,100,1,0, - 107,9,0,114,13,0,116,4,0,124,6,0,100,2,0,131, - 2,0,114,106,0,124,6,0,106,5,0,124,1,0,124,3, - 0,131,2,0,125,7,0,110,18,0,124,0,0,106,6,0, - 124,1,0,124,6,0,131,2,0,125,7,0,124,7,0,100, - 1,0,107,8,0,114,139,0,113,13,0,124,7,0,106,7, - 0,100,1,0,107,9,0,114,158,0,124,7,0,83,124,7, - 0,106,8,0,125,8,0,124,8,0,100,1,0,107,8,0, - 114,191,0,116,9,0,100,3,0,131,1,0,130,1,0,124, - 4,0,106,10,0,124,8,0,131,1,0,1,113,13,0,87, - 116,11,0,106,12,0,124,1,0,100,1,0,131,2,0,125, - 7,0,124,4,0,124,7,0,95,8,0,124,7,0,83,100, - 1,0,83,41,4,122,63,70,105,110,100,32,116,104,101,32, - 108,111,97,100,101,114,32,111,114,32,110,97,109,101,115,112, - 97,99,101,95,112,97,116,104,32,102,111,114,32,116,104,105, - 115,32,109,111,100,117,108,101,47,112,97,99,107,97,103,101, - 32,110,97,109,101,46,78,114,184,0,0,0,122,19,115,112, - 101,99,32,109,105,115,115,105,110,103,32,108,111,97,100,101, - 114,41,13,114,148,0,0,0,114,69,0,0,0,218,5,98, - 121,116,101,115,114,4,1,0,0,114,115,0,0,0,114,184, - 0,0,0,114,5,1,0,0,114,127,0,0,0,114,164,0, - 0,0,114,107,0,0,0,114,154,0,0,0,114,121,0,0, - 0,114,166,0,0,0,41,9,114,174,0,0,0,114,126,0, - 0,0,114,35,0,0,0,114,183,0,0,0,218,14,110,97, - 109,101,115,112,97,99,101,95,112,97,116,104,90,5,101,110, - 116,114,121,114,0,1,0,0,114,133,0,0,0,114,128,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,218,9,95,103,101,116,95,115,112,101,99,110,4,0,0, - 115,40,0,0,0,0,5,6,1,13,1,21,1,3,1,15, - 1,12,1,15,1,21,2,18,1,12,1,3,1,15,1,4, - 1,9,1,12,1,12,5,17,2,18,1,9,1,122,20,80, - 97,116,104,70,105,110,100,101,114,46,95,103,101,116,95,115, - 112,101,99,99,4,0,0,0,0,0,0,0,6,0,0,0, - 4,0,0,0,67,0,0,0,115,140,0,0,0,124,2,0, - 100,1,0,107,8,0,114,21,0,116,0,0,106,1,0,125, - 2,0,124,0,0,106,2,0,124,1,0,124,2,0,124,3, - 0,131,3,0,125,4,0,124,4,0,100,1,0,107,8,0, - 114,58,0,100,1,0,83,124,4,0,106,3,0,100,1,0, - 107,8,0,114,132,0,124,4,0,106,4,0,125,5,0,124, - 5,0,114,125,0,100,2,0,124,4,0,95,5,0,116,6, - 0,124,1,0,124,5,0,124,0,0,106,2,0,131,3,0, - 124,4,0,95,4,0,124,4,0,83,100,1,0,83,110,4, - 0,124,4,0,83,100,1,0,83,41,3,122,98,102,105,110, - 100,32,116,104,101,32,109,111,100,117,108,101,32,111,110,32, - 115,121,115,46,112,97,116,104,32,111,114,32,39,112,97,116, - 104,39,32,98,97,115,101,100,32,111,110,32,115,121,115,46, - 112,97,116,104,95,104,111,111,107,115,32,97,110,100,10,32, - 32,32,32,32,32,32,32,115,121,115,46,112,97,116,104,95, - 105,109,112,111,114,116,101,114,95,99,97,99,104,101,46,78, - 90,9,110,97,109,101,115,112,97,99,101,41,7,114,7,0, - 0,0,114,35,0,0,0,114,8,1,0,0,114,127,0,0, - 0,114,164,0,0,0,114,161,0,0,0,114,234,0,0,0, - 41,6,114,174,0,0,0,114,126,0,0,0,114,35,0,0, - 0,114,183,0,0,0,114,133,0,0,0,114,7,1,0,0, - 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 184,0,0,0,142,4,0,0,115,26,0,0,0,0,4,12, - 1,9,1,21,1,12,1,4,1,15,1,9,1,6,3,9, - 1,24,1,4,2,7,2,122,20,80,97,116,104,70,105,110, - 100,101,114,46,102,105,110,100,95,115,112,101,99,99,3,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0, - 0,0,115,41,0,0,0,124,0,0,106,0,0,124,1,0, - 124,2,0,131,2,0,125,3,0,124,3,0,100,1,0,107, - 8,0,114,34,0,100,1,0,83,124,3,0,106,1,0,83, - 41,2,122,170,102,105,110,100,32,116,104,101,32,109,111,100, - 117,108,101,32,111,110,32,115,121,115,46,112,97,116,104,32, - 111,114,32,39,112,97,116,104,39,32,98,97,115,101,100,32, - 111,110,32,115,121,115,46,112,97,116,104,95,104,111,111,107, - 115,32,97,110,100,10,32,32,32,32,32,32,32,32,115,121, - 115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,95, - 99,97,99,104,101,46,10,10,32,32,32,32,32,32,32,32, - 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, - 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, - 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, - 101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,41, - 2,114,184,0,0,0,114,127,0,0,0,41,4,114,174,0, - 0,0,114,126,0,0,0,114,35,0,0,0,114,133,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,185,0,0,0,164,4,0,0,115,8,0,0,0,0,8, - 18,1,12,1,4,1,122,22,80,97,116,104,70,105,110,100, - 101,114,46,102,105,110,100,95,109,111,100,117,108,101,41,12, - 114,112,0,0,0,114,111,0,0,0,114,113,0,0,0,114, - 114,0,0,0,114,186,0,0,0,114,253,0,0,0,114,2, - 1,0,0,114,4,1,0,0,114,5,1,0,0,114,8,1, - 0,0,114,184,0,0,0,114,185,0,0,0,114,4,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,252,0,0,0,44,4,0,0,115,22,0,0,0,12,2, - 6,2,18,8,18,17,18,22,18,15,3,1,18,31,3,1, - 21,21,3,1,114,252,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,133, - 0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,100, - 1,0,90,3,0,100,2,0,100,3,0,132,0,0,90,4, - 0,100,4,0,100,5,0,132,0,0,90,5,0,101,6,0, - 90,7,0,100,6,0,100,7,0,132,0,0,90,8,0,100, - 8,0,100,9,0,132,0,0,90,9,0,100,10,0,100,11, - 0,100,12,0,132,1,0,90,10,0,100,13,0,100,14,0, - 132,0,0,90,11,0,101,12,0,100,15,0,100,16,0,132, - 0,0,131,1,0,90,13,0,100,17,0,100,18,0,132,0, - 0,90,14,0,100,10,0,83,41,19,218,10,70,105,108,101, - 70,105,110,100,101,114,122,172,70,105,108,101,45,98,97,115, - 101,100,32,102,105,110,100,101,114,46,10,10,32,32,32,32, - 73,110,116,101,114,97,99,116,105,111,110,115,32,119,105,116, - 104,32,116,104,101,32,102,105,108,101,32,115,121,115,116,101, - 109,32,97,114,101,32,99,97,99,104,101,100,32,102,111,114, - 32,112,101,114,102,111,114,109,97,110,99,101,44,32,98,101, - 105,110,103,10,32,32,32,32,114,101,102,114,101,115,104,101, - 100,32,119,104,101,110,32,116,104,101,32,100,105,114,101,99, - 116,111,114,121,32,116,104,101,32,102,105,110,100,101,114,32, - 105,115,32,104,97,110,100,108,105,110,103,32,104,97,115,32, - 98,101,101,110,32,109,111,100,105,102,105,101,100,46,10,10, - 32,32,32,32,99,2,0,0,0,0,0,0,0,5,0,0, - 0,5,0,0,0,7,0,0,0,115,122,0,0,0,103,0, - 0,125,3,0,120,52,0,124,2,0,68,93,44,0,92,2, - 0,137,0,0,125,4,0,124,3,0,106,0,0,135,0,0, - 102,1,0,100,1,0,100,2,0,134,0,0,124,4,0,68, - 131,1,0,131,1,0,1,113,13,0,87,124,3,0,124,0, - 0,95,1,0,124,1,0,112,79,0,100,3,0,124,0,0, - 95,2,0,100,6,0,124,0,0,95,3,0,116,4,0,131, - 0,0,124,0,0,95,5,0,116,4,0,131,0,0,124,0, - 0,95,6,0,100,5,0,83,41,7,122,154,73,110,105,116, - 105,97,108,105,122,101,32,119,105,116,104,32,116,104,101,32, - 112,97,116,104,32,116,111,32,115,101,97,114,99,104,32,111, - 110,32,97,110,100,32,97,32,118,97,114,105,97,98,108,101, - 32,110,117,109,98,101,114,32,111,102,10,32,32,32,32,32, - 32,32,32,50,45,116,117,112,108,101,115,32,99,111,110,116, - 97,105,110,105,110,103,32,116,104,101,32,108,111,97,100,101, - 114,32,97,110,100,32,116,104,101,32,102,105,108,101,32,115, - 117,102,102,105,120,101,115,32,116,104,101,32,108,111,97,100, - 101,114,10,32,32,32,32,32,32,32,32,114,101,99,111,103, - 110,105,122,101,115,46,99,1,0,0,0,0,0,0,0,2, - 0,0,0,3,0,0,0,51,0,0,0,115,27,0,0,0, - 124,0,0,93,17,0,125,1,0,124,1,0,136,0,0,102, - 2,0,86,1,113,3,0,100,0,0,83,41,1,78,114,4, - 0,0,0,41,2,114,22,0,0,0,114,229,0,0,0,41, - 1,114,127,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,231,0,0,0,193,4,0,0,115,2,0,0,0,6,0, - 122,38,70,105,108,101,70,105,110,100,101,114,46,95,95,105, - 110,105,116,95,95,46,60,108,111,99,97,108,115,62,46,60, - 103,101,110,101,120,112,114,62,114,58,0,0,0,114,29,0, - 0,0,78,114,87,0,0,0,41,7,114,154,0,0,0,218, - 8,95,108,111,97,100,101,114,115,114,35,0,0,0,218,11, - 95,112,97,116,104,95,109,116,105,109,101,218,3,115,101,116, - 218,11,95,112,97,116,104,95,99,97,99,104,101,218,19,95, - 114,101,108,97,120,101,100,95,112,97,116,104,95,99,97,99, - 104,101,41,5,114,108,0,0,0,114,35,0,0,0,218,14, - 108,111,97,100,101,114,95,100,101,116,97,105,108,115,90,7, - 108,111,97,100,101,114,115,114,171,0,0,0,114,4,0,0, - 0,41,1,114,127,0,0,0,114,5,0,0,0,114,188,0, - 0,0,187,4,0,0,115,16,0,0,0,0,4,6,1,19, - 1,36,1,9,2,15,1,9,1,12,1,122,19,70,105,108, - 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95, - 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0, - 0,67,0,0,0,115,13,0,0,0,100,3,0,124,0,0, - 95,0,0,100,2,0,83,41,4,122,31,73,110,118,97,108, - 105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,116, - 111,114,121,32,109,116,105,109,101,46,114,29,0,0,0,78, - 114,87,0,0,0,41,1,114,11,1,0,0,41,1,114,108, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,114,253,0,0,0,201,4,0,0,115,2,0,0,0, - 0,2,122,28,70,105,108,101,70,105,110,100,101,114,46,105, - 110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115, - 99,2,0,0,0,0,0,0,0,3,0,0,0,2,0,0, - 0,67,0,0,0,115,59,0,0,0,124,0,0,106,0,0, - 124,1,0,131,1,0,125,2,0,124,2,0,100,1,0,107, - 8,0,114,37,0,100,1,0,103,0,0,102,2,0,83,124, - 2,0,106,1,0,124,2,0,106,2,0,112,55,0,103,0, - 0,102,2,0,83,41,2,122,197,84,114,121,32,116,111,32, + 0,0,0,0,0,0,3,0,0,0,2,0,0,0,67,0, + 0,0,115,59,0,0,0,124,0,0,106,0,0,124,1,0, + 131,1,0,125,2,0,124,2,0,100,1,0,107,8,0,114, + 37,0,100,1,0,103,0,0,102,2,0,83,124,2,0,106, + 1,0,124,2,0,106,2,0,112,55,0,103,0,0,102,2, + 0,83,41,2,122,197,84,114,121,32,116,111,32,102,105,110, + 100,32,97,32,108,111,97,100,101,114,32,102,111,114,32,116, + 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100, + 117,108,101,44,32,111,114,32,116,104,101,32,110,97,109,101, + 115,112,97,99,101,10,32,32,32,32,32,32,32,32,112,97, + 99,107,97,103,101,32,112,111,114,116,105,111,110,115,46,32, + 82,101,116,117,114,110,115,32,40,108,111,97,100,101,114,44, + 32,108,105,115,116,45,111,102,45,112,111,114,116,105,111,110, + 115,41,46,10,10,32,32,32,32,32,32,32,32,84,104,105, + 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,46,32,32,85,115,101,32,102,105,110, + 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100, + 46,10,10,32,32,32,32,32,32,32,32,78,41,3,114,184, + 0,0,0,114,127,0,0,0,114,164,0,0,0,41,3,114, + 108,0,0,0,114,126,0,0,0,114,133,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,124,0, + 0,0,208,4,0,0,115,8,0,0,0,0,7,15,1,12, + 1,10,1,122,22,70,105,108,101,70,105,110,100,101,114,46, + 102,105,110,100,95,108,111,97,100,101,114,99,6,0,0,0, + 0,0,0,0,7,0,0,0,7,0,0,0,67,0,0,0, + 115,40,0,0,0,124,1,0,124,2,0,124,3,0,131,2, + 0,125,6,0,116,0,0,124,2,0,124,3,0,100,1,0, + 124,6,0,100,2,0,124,4,0,131,2,2,83,41,3,78, + 114,127,0,0,0,114,164,0,0,0,41,1,114,165,0,0, + 0,41,7,114,108,0,0,0,114,170,0,0,0,114,126,0, + 0,0,114,35,0,0,0,90,4,115,109,115,108,114,183,0, + 0,0,114,127,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,114,8,1,0,0,220,4,0,0,115, + 6,0,0,0,0,1,15,1,18,1,122,20,70,105,108,101, + 70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,99, + 78,99,3,0,0,0,0,0,0,0,14,0,0,0,15,0, + 0,0,67,0,0,0,115,234,1,0,0,100,1,0,125,3, + 0,124,1,0,106,0,0,100,2,0,131,1,0,100,3,0, + 25,125,4,0,121,34,0,116,1,0,124,0,0,106,2,0, + 112,49,0,116,3,0,106,4,0,131,0,0,131,1,0,106, + 5,0,125,5,0,87,110,24,0,4,116,6,0,107,10,0, + 114,85,0,1,1,1,100,10,0,125,5,0,89,110,1,0, + 88,124,5,0,124,0,0,106,7,0,107,3,0,114,120,0, + 124,0,0,106,8,0,131,0,0,1,124,5,0,124,0,0, + 95,7,0,116,9,0,131,0,0,114,153,0,124,0,0,106, + 10,0,125,6,0,124,4,0,106,11,0,131,0,0,125,7, + 0,110,15,0,124,0,0,106,12,0,125,6,0,124,4,0, + 125,7,0,124,7,0,124,6,0,107,6,0,114,45,1,116, + 13,0,124,0,0,106,2,0,124,4,0,131,2,0,125,8, + 0,120,100,0,124,0,0,106,14,0,68,93,77,0,92,2, + 0,125,9,0,125,10,0,100,5,0,124,9,0,23,125,11, + 0,116,13,0,124,8,0,124,11,0,131,2,0,125,12,0, + 116,15,0,124,12,0,131,1,0,114,208,0,124,0,0,106, + 16,0,124,10,0,124,1,0,124,12,0,124,8,0,103,1, + 0,124,2,0,131,5,0,83,113,208,0,87,116,17,0,124, + 8,0,131,1,0,125,3,0,120,123,0,124,0,0,106,14, + 0,68,93,112,0,92,2,0,125,9,0,125,10,0,116,13, + 0,124,0,0,106,2,0,124,4,0,124,9,0,23,131,2, + 0,125,12,0,116,18,0,100,6,0,106,19,0,124,12,0, + 131,1,0,100,7,0,100,3,0,131,1,1,1,124,7,0, + 124,9,0,23,124,6,0,107,6,0,114,55,1,116,15,0, + 124,12,0,131,1,0,114,55,1,124,0,0,106,16,0,124, + 10,0,124,1,0,124,12,0,100,8,0,124,2,0,131,5, + 0,83,113,55,1,87,124,3,0,114,230,1,116,18,0,100, + 9,0,106,19,0,124,8,0,131,1,0,131,1,0,1,116, + 20,0,106,21,0,124,1,0,100,8,0,131,2,0,125,13, + 0,124,8,0,103,1,0,124,13,0,95,22,0,124,13,0, + 83,100,8,0,83,41,11,122,125,84,114,121,32,116,111,32, 102,105,110,100,32,97,32,108,111,97,100,101,114,32,102,111, 114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32, 109,111,100,117,108,101,44,32,111,114,32,116,104,101,32,110, @@ -2229,405 +2291,342 @@ const unsigned char _Py_M__importlib_external[] = { 32,112,97,99,107,97,103,101,32,112,111,114,116,105,111,110, 115,46,32,82,101,116,117,114,110,115,32,40,108,111,97,100, 101,114,44,32,108,105,115,116,45,111,102,45,112,111,114,116, - 105,111,110,115,41,46,10,10,32,32,32,32,32,32,32,32, - 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, - 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, - 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, - 101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,41, - 3,114,184,0,0,0,114,127,0,0,0,114,164,0,0,0, - 41,3,114,108,0,0,0,114,126,0,0,0,114,133,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,124,0,0,0,207,4,0,0,115,8,0,0,0,0,7, - 15,1,12,1,10,1,122,22,70,105,108,101,70,105,110,100, - 101,114,46,102,105,110,100,95,108,111,97,100,101,114,99,6, - 0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,67, - 0,0,0,115,40,0,0,0,124,1,0,124,2,0,124,3, - 0,131,2,0,125,6,0,116,0,0,124,2,0,124,3,0, - 100,1,0,124,6,0,100,2,0,124,4,0,131,2,2,83, - 41,3,78,114,127,0,0,0,114,164,0,0,0,41,1,114, - 165,0,0,0,41,7,114,108,0,0,0,114,170,0,0,0, - 114,126,0,0,0,114,35,0,0,0,90,4,115,109,115,108, - 114,183,0,0,0,114,127,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,8,1,0,0,219,4, - 0,0,115,6,0,0,0,0,1,15,1,18,1,122,20,70, - 105,108,101,70,105,110,100,101,114,46,95,103,101,116,95,115, - 112,101,99,78,99,3,0,0,0,0,0,0,0,14,0,0, - 0,15,0,0,0,67,0,0,0,115,234,1,0,0,100,1, - 0,125,3,0,124,1,0,106,0,0,100,2,0,131,1,0, - 100,3,0,25,125,4,0,121,34,0,116,1,0,124,0,0, - 106,2,0,112,49,0,116,3,0,106,4,0,131,0,0,131, - 1,0,106,5,0,125,5,0,87,110,24,0,4,116,6,0, - 107,10,0,114,85,0,1,1,1,100,10,0,125,5,0,89, - 110,1,0,88,124,5,0,124,0,0,106,7,0,107,3,0, - 114,120,0,124,0,0,106,8,0,131,0,0,1,124,5,0, - 124,0,0,95,7,0,116,9,0,131,0,0,114,153,0,124, - 0,0,106,10,0,125,6,0,124,4,0,106,11,0,131,0, - 0,125,7,0,110,15,0,124,0,0,106,12,0,125,6,0, - 124,4,0,125,7,0,124,7,0,124,6,0,107,6,0,114, - 45,1,116,13,0,124,0,0,106,2,0,124,4,0,131,2, - 0,125,8,0,120,100,0,124,0,0,106,14,0,68,93,77, - 0,92,2,0,125,9,0,125,10,0,100,5,0,124,9,0, - 23,125,11,0,116,13,0,124,8,0,124,11,0,131,2,0, - 125,12,0,116,15,0,124,12,0,131,1,0,114,208,0,124, - 0,0,106,16,0,124,10,0,124,1,0,124,12,0,124,8, - 0,103,1,0,124,2,0,131,5,0,83,113,208,0,87,116, - 17,0,124,8,0,131,1,0,125,3,0,120,123,0,124,0, - 0,106,14,0,68,93,112,0,92,2,0,125,9,0,125,10, - 0,116,13,0,124,0,0,106,2,0,124,4,0,124,9,0, - 23,131,2,0,125,12,0,116,18,0,100,6,0,106,19,0, - 124,12,0,131,1,0,100,7,0,100,3,0,131,1,1,1, - 124,7,0,124,9,0,23,124,6,0,107,6,0,114,55,1, - 116,15,0,124,12,0,131,1,0,114,55,1,124,0,0,106, - 16,0,124,10,0,124,1,0,124,12,0,100,8,0,124,2, - 0,131,5,0,83,113,55,1,87,124,3,0,114,230,1,116, - 18,0,100,9,0,106,19,0,124,8,0,131,1,0,131,1, - 0,1,116,20,0,106,21,0,124,1,0,100,8,0,131,2, - 0,125,13,0,124,8,0,103,1,0,124,13,0,95,22,0, - 124,13,0,83,100,8,0,83,41,11,122,125,84,114,121,32, - 116,111,32,102,105,110,100,32,97,32,108,111,97,100,101,114, - 32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105, - 101,100,32,109,111,100,117,108,101,44,32,111,114,32,116,104, - 101,32,110,97,109,101,115,112,97,99,101,10,32,32,32,32, - 32,32,32,32,112,97,99,107,97,103,101,32,112,111,114,116, - 105,111,110,115,46,32,82,101,116,117,114,110,115,32,40,108, - 111,97,100,101,114,44,32,108,105,115,116,45,111,102,45,112, - 111,114,116,105,111,110,115,41,46,70,114,58,0,0,0,114, - 56,0,0,0,114,29,0,0,0,114,188,0,0,0,122,9, - 116,114,121,105,110,103,32,123,125,114,98,0,0,0,78,122, - 25,112,111,115,115,105,98,108,101,32,110,97,109,101,115,112, - 97,99,101,32,102,111,114,32,123,125,114,87,0,0,0,41, - 23,114,32,0,0,0,114,39,0,0,0,114,35,0,0,0, - 114,3,0,0,0,114,45,0,0,0,114,220,0,0,0,114, - 40,0,0,0,114,11,1,0,0,218,11,95,102,105,108,108, - 95,99,97,99,104,101,114,6,0,0,0,114,14,1,0,0, - 114,88,0,0,0,114,13,1,0,0,114,28,0,0,0,114, - 10,1,0,0,114,44,0,0,0,114,8,1,0,0,114,46, - 0,0,0,114,105,0,0,0,114,47,0,0,0,114,121,0, - 0,0,114,166,0,0,0,114,164,0,0,0,41,14,114,108, - 0,0,0,114,126,0,0,0,114,183,0,0,0,90,12,105, - 115,95,110,97,109,101,115,112,97,99,101,90,11,116,97,105, - 108,95,109,111,100,117,108,101,114,138,0,0,0,90,5,99, - 97,99,104,101,90,12,99,97,99,104,101,95,109,111,100,117, - 108,101,90,9,98,97,115,101,95,112,97,116,104,114,229,0, - 0,0,114,170,0,0,0,90,13,105,110,105,116,95,102,105, - 108,101,110,97,109,101,90,9,102,117,108,108,95,112,97,116, - 104,114,133,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,5,0,0,0,114,184,0,0,0,224,4,0,0,115,68, - 0,0,0,0,3,6,1,19,1,3,1,34,1,13,1,11, - 1,15,1,10,1,9,2,9,1,9,1,15,2,9,1,6, - 2,12,1,18,1,22,1,10,1,15,1,12,1,32,4,12, - 2,22,1,22,1,25,1,16,1,12,1,29,1,6,1,19, - 1,18,1,12,1,4,1,122,20,70,105,108,101,70,105,110, - 100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,0, - 0,0,0,0,0,0,9,0,0,0,13,0,0,0,67,0, - 0,0,115,11,1,0,0,124,0,0,106,0,0,125,1,0, - 121,31,0,116,1,0,106,2,0,124,1,0,112,33,0,116, - 1,0,106,3,0,131,0,0,131,1,0,125,2,0,87,110, - 33,0,4,116,4,0,116,5,0,116,6,0,102,3,0,107, - 10,0,114,75,0,1,1,1,103,0,0,125,2,0,89,110, - 1,0,88,116,7,0,106,8,0,106,9,0,100,1,0,131, - 1,0,115,112,0,116,10,0,124,2,0,131,1,0,124,0, - 0,95,11,0,110,111,0,116,10,0,131,0,0,125,3,0, - 120,90,0,124,2,0,68,93,82,0,125,4,0,124,4,0, - 106,12,0,100,2,0,131,1,0,92,3,0,125,5,0,125, - 6,0,125,7,0,124,6,0,114,191,0,100,3,0,106,13, - 0,124,5,0,124,7,0,106,14,0,131,0,0,131,2,0, - 125,8,0,110,6,0,124,5,0,125,8,0,124,3,0,106, - 15,0,124,8,0,131,1,0,1,113,128,0,87,124,3,0, - 124,0,0,95,11,0,116,7,0,106,8,0,106,9,0,116, - 16,0,131,1,0,114,7,1,100,4,0,100,5,0,132,0, - 0,124,2,0,68,131,1,0,124,0,0,95,17,0,100,6, - 0,83,41,7,122,68,70,105,108,108,32,116,104,101,32,99, - 97,99,104,101,32,111,102,32,112,111,116,101,110,116,105,97, - 108,32,109,111,100,117,108,101,115,32,97,110,100,32,112,97, - 99,107,97,103,101,115,32,102,111,114,32,116,104,105,115,32, - 100,105,114,101,99,116,111,114,121,46,114,0,0,0,0,114, - 58,0,0,0,122,5,123,125,46,123,125,99,1,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,83,0,0,0, - 115,28,0,0,0,104,0,0,124,0,0,93,18,0,125,1, - 0,124,1,0,106,0,0,131,0,0,146,2,0,113,6,0, - 83,114,4,0,0,0,41,1,114,88,0,0,0,41,2,114, - 22,0,0,0,90,2,102,110,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,250,9,60,115,101,116,99,111,109, - 112,62,42,5,0,0,115,2,0,0,0,9,0,122,41,70, - 105,108,101,70,105,110,100,101,114,46,95,102,105,108,108,95, - 99,97,99,104,101,46,60,108,111,99,97,108,115,62,46,60, - 115,101,116,99,111,109,112,62,78,41,18,114,35,0,0,0, - 114,3,0,0,0,90,7,108,105,115,116,100,105,114,114,45, - 0,0,0,114,3,1,0,0,218,15,80,101,114,109,105,115, - 115,105,111,110,69,114,114,111,114,218,18,78,111,116,65,68, - 105,114,101,99,116,111,114,121,69,114,114,111,114,114,7,0, - 0,0,114,8,0,0,0,114,9,0,0,0,114,12,1,0, - 0,114,13,1,0,0,114,83,0,0,0,114,47,0,0,0, - 114,88,0,0,0,218,3,97,100,100,114,10,0,0,0,114, - 14,1,0,0,41,9,114,108,0,0,0,114,35,0,0,0, - 90,8,99,111,110,116,101,110,116,115,90,21,108,111,119,101, - 114,95,115,117,102,102,105,120,95,99,111,110,116,101,110,116, - 115,114,248,0,0,0,114,106,0,0,0,114,241,0,0,0, - 114,229,0,0,0,90,8,110,101,119,95,110,97,109,101,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,16, - 1,0,0,13,5,0,0,115,34,0,0,0,0,2,9,1, - 3,1,31,1,22,3,11,3,18,1,18,7,9,1,13,1, - 24,1,6,1,27,2,6,1,17,1,9,1,18,1,122,22, - 70,105,108,101,70,105,110,100,101,114,46,95,102,105,108,108, - 95,99,97,99,104,101,99,1,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,7,0,0,0,115,25,0,0,0, - 135,0,0,135,1,0,102,2,0,100,1,0,100,2,0,134, - 0,0,125,2,0,124,2,0,83,41,3,97,20,1,0,0, - 65,32,99,108,97,115,115,32,109,101,116,104,111,100,32,119, - 104,105,99,104,32,114,101,116,117,114,110,115,32,97,32,99, - 108,111,115,117,114,101,32,116,111,32,117,115,101,32,111,110, - 32,115,121,115,46,112,97,116,104,95,104,111,111,107,10,32, - 32,32,32,32,32,32,32,119,104,105,99,104,32,119,105,108, - 108,32,114,101,116,117,114,110,32,97,110,32,105,110,115,116, - 97,110,99,101,32,117,115,105,110,103,32,116,104,101,32,115, - 112,101,99,105,102,105,101,100,32,108,111,97,100,101,114,115, - 32,97,110,100,32,116,104,101,32,112,97,116,104,10,32,32, - 32,32,32,32,32,32,99,97,108,108,101,100,32,111,110,32, - 116,104,101,32,99,108,111,115,117,114,101,46,10,10,32,32, - 32,32,32,32,32,32,73,102,32,116,104,101,32,112,97,116, - 104,32,99,97,108,108,101,100,32,111,110,32,116,104,101,32, - 99,108,111,115,117,114,101,32,105,115,32,110,111,116,32,97, - 32,100,105,114,101,99,116,111,114,121,44,32,73,109,112,111, - 114,116,69,114,114,111,114,32,105,115,10,32,32,32,32,32, - 32,32,32,114,97,105,115,101,100,46,10,10,32,32,32,32, - 32,32,32,32,99,1,0,0,0,0,0,0,0,1,0,0, - 0,4,0,0,0,19,0,0,0,115,43,0,0,0,116,0, - 0,124,0,0,131,1,0,115,30,0,116,1,0,100,1,0, - 100,2,0,124,0,0,131,1,1,130,1,0,136,0,0,124, - 0,0,136,1,0,140,1,0,83,41,3,122,45,80,97,116, - 104,32,104,111,111,107,32,102,111,114,32,105,109,112,111,114, - 116,108,105,98,46,109,97,99,104,105,110,101,114,121,46,70, - 105,108,101,70,105,110,100,101,114,46,122,30,111,110,108,121, - 32,100,105,114,101,99,116,111,114,105,101,115,32,97,114,101, - 32,115,117,112,112,111,114,116,101,100,114,35,0,0,0,41, - 2,114,46,0,0,0,114,107,0,0,0,41,1,114,35,0, - 0,0,41,2,114,174,0,0,0,114,15,1,0,0,114,4, - 0,0,0,114,5,0,0,0,218,24,112,97,116,104,95,104, - 111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,100, - 101,114,54,5,0,0,115,6,0,0,0,0,2,12,1,18, - 1,122,54,70,105,108,101,70,105,110,100,101,114,46,112,97, - 116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62, - 46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70, - 105,108,101,70,105,110,100,101,114,114,4,0,0,0,41,3, - 114,174,0,0,0,114,15,1,0,0,114,21,1,0,0,114, - 4,0,0,0,41,2,114,174,0,0,0,114,15,1,0,0, - 114,5,0,0,0,218,9,112,97,116,104,95,104,111,111,107, - 44,5,0,0,115,4,0,0,0,0,10,21,6,122,20,70, - 105,108,101,70,105,110,100,101,114,46,112,97,116,104,95,104, - 111,111,107,99,1,0,0,0,0,0,0,0,1,0,0,0, - 2,0,0,0,67,0,0,0,115,16,0,0,0,100,1,0, - 106,0,0,124,0,0,106,1,0,131,1,0,83,41,2,78, - 122,16,70,105,108,101,70,105,110,100,101,114,40,123,33,114, - 125,41,41,2,114,47,0,0,0,114,35,0,0,0,41,1, - 114,108,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,114,247,0,0,0,62,5,0,0,115,2,0, - 0,0,0,1,122,19,70,105,108,101,70,105,110,100,101,114, - 46,95,95,114,101,112,114,95,95,41,15,114,112,0,0,0, - 114,111,0,0,0,114,113,0,0,0,114,114,0,0,0,114, - 188,0,0,0,114,253,0,0,0,114,130,0,0,0,114,185, - 0,0,0,114,124,0,0,0,114,8,1,0,0,114,184,0, - 0,0,114,16,1,0,0,114,186,0,0,0,114,22,1,0, - 0,114,247,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,114,9,1,0,0,178, - 4,0,0,115,20,0,0,0,12,7,6,2,12,14,12,4, - 6,2,12,12,12,5,15,45,12,31,18,18,114,9,1,0, - 0,99,4,0,0,0,0,0,0,0,6,0,0,0,11,0, - 0,0,67,0,0,0,115,195,0,0,0,124,0,0,106,0, - 0,100,1,0,131,1,0,125,4,0,124,0,0,106,0,0, - 100,2,0,131,1,0,125,5,0,124,4,0,115,99,0,124, - 5,0,114,54,0,124,5,0,106,1,0,125,4,0,110,45, - 0,124,2,0,124,3,0,107,2,0,114,84,0,116,2,0, - 124,1,0,124,2,0,131,2,0,125,4,0,110,15,0,116, - 3,0,124,1,0,124,2,0,131,2,0,125,4,0,124,5, - 0,115,126,0,116,4,0,124,1,0,124,2,0,100,3,0, - 124,4,0,131,2,1,125,5,0,121,44,0,124,5,0,124, - 0,0,100,2,0,60,124,4,0,124,0,0,100,1,0,60, - 124,2,0,124,0,0,100,4,0,60,124,3,0,124,0,0, - 100,5,0,60,87,110,18,0,4,116,5,0,107,10,0,114, - 190,0,1,1,1,89,110,1,0,88,100,0,0,83,41,6, - 78,114,227,0,0,0,218,8,95,95,115,112,101,99,95,95, - 114,127,0,0,0,90,8,95,95,102,105,108,101,95,95,90, - 10,95,95,99,97,99,104,101,100,95,95,41,6,218,3,103, - 101,116,114,127,0,0,0,114,224,0,0,0,114,219,0,0, - 0,114,165,0,0,0,218,9,69,120,99,101,112,116,105,111, - 110,41,6,90,2,110,115,114,106,0,0,0,90,8,112,97, - 116,104,110,97,109,101,90,9,99,112,97,116,104,110,97,109, - 101,114,127,0,0,0,114,133,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,218,14,95,102,105,120, - 95,117,112,95,109,111,100,117,108,101,68,5,0,0,115,34, - 0,0,0,0,2,15,1,15,1,6,1,6,1,12,1,12, - 1,18,2,15,1,6,1,21,1,3,1,10,1,10,1,10, - 1,14,1,13,2,114,26,1,0,0,99,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,115, - 55,0,0,0,116,0,0,116,1,0,106,2,0,131,0,0, - 102,2,0,125,0,0,116,3,0,116,4,0,102,2,0,125, - 1,0,116,5,0,116,6,0,102,2,0,125,2,0,124,0, - 0,124,1,0,124,2,0,103,3,0,83,41,1,122,95,82, - 101,116,117,114,110,115,32,97,32,108,105,115,116,32,111,102, - 32,102,105,108,101,45,98,97,115,101,100,32,109,111,100,117, - 108,101,32,108,111,97,100,101,114,115,46,10,10,32,32,32, - 32,69,97,99,104,32,105,116,101,109,32,105,115,32,97,32, - 116,117,112,108,101,32,40,108,111,97,100,101,114,44,32,115, - 117,102,102,105,120,101,115,41,46,10,32,32,32,32,41,7, - 114,225,0,0,0,114,150,0,0,0,218,18,101,120,116,101, - 110,115,105,111,110,95,115,117,102,102,105,120,101,115,114,219, - 0,0,0,114,84,0,0,0,114,224,0,0,0,114,74,0, - 0,0,41,3,90,10,101,120,116,101,110,115,105,111,110,115, - 90,6,115,111,117,114,99,101,90,8,98,121,116,101,99,111, - 100,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,114,167,0,0,0,91,5,0,0,115,8,0,0,0,0, - 5,18,1,12,1,12,1,114,167,0,0,0,99,1,0,0, - 0,0,0,0,0,12,0,0,0,12,0,0,0,67,0,0, - 0,115,70,2,0,0,124,0,0,97,0,0,116,0,0,106, - 1,0,97,1,0,116,0,0,106,2,0,97,2,0,116,1, - 0,106,3,0,116,4,0,25,125,1,0,120,76,0,100,26, - 0,68,93,68,0,125,2,0,124,2,0,116,1,0,106,3, - 0,107,7,0,114,83,0,116,0,0,106,5,0,124,2,0, - 131,1,0,125,3,0,110,13,0,116,1,0,106,3,0,124, - 2,0,25,125,3,0,116,6,0,124,1,0,124,2,0,124, - 3,0,131,3,0,1,113,44,0,87,100,5,0,100,6,0, - 103,1,0,102,2,0,100,7,0,100,8,0,100,6,0,103, - 2,0,102,2,0,102,2,0,125,4,0,120,149,0,124,4, - 0,68,93,129,0,92,2,0,125,5,0,125,6,0,116,7, - 0,100,9,0,100,10,0,132,0,0,124,6,0,68,131,1, - 0,131,1,0,115,199,0,116,8,0,130,1,0,124,6,0, - 100,11,0,25,125,7,0,124,5,0,116,1,0,106,3,0, - 107,6,0,114,241,0,116,1,0,106,3,0,124,5,0,25, - 125,8,0,80,113,156,0,121,20,0,116,0,0,106,5,0, - 124,5,0,131,1,0,125,8,0,80,87,113,156,0,4,116, - 9,0,107,10,0,114,28,1,1,1,1,119,156,0,89,113, - 156,0,88,113,156,0,87,116,9,0,100,12,0,131,1,0, - 130,1,0,116,6,0,124,1,0,100,13,0,124,8,0,131, - 3,0,1,116,6,0,124,1,0,100,14,0,124,7,0,131, - 3,0,1,116,6,0,124,1,0,100,15,0,100,16,0,106, - 10,0,124,6,0,131,1,0,131,3,0,1,121,19,0,116, - 0,0,106,5,0,100,17,0,131,1,0,125,9,0,87,110, - 24,0,4,116,9,0,107,10,0,114,147,1,1,1,1,100, - 18,0,125,9,0,89,110,1,0,88,116,6,0,124,1,0, - 100,17,0,124,9,0,131,3,0,1,116,0,0,106,5,0, - 100,19,0,131,1,0,125,10,0,116,6,0,124,1,0,100, - 19,0,124,10,0,131,3,0,1,124,5,0,100,7,0,107, - 2,0,114,238,1,116,0,0,106,5,0,100,20,0,131,1, - 0,125,11,0,116,6,0,124,1,0,100,21,0,124,11,0, - 131,3,0,1,116,6,0,124,1,0,100,22,0,116,11,0, - 131,0,0,131,3,0,1,116,12,0,106,13,0,116,2,0, - 106,14,0,131,0,0,131,1,0,1,124,5,0,100,7,0, - 107,2,0,114,66,2,116,15,0,106,16,0,100,23,0,131, - 1,0,1,100,24,0,116,12,0,107,6,0,114,66,2,100, - 25,0,116,17,0,95,18,0,100,18,0,83,41,27,122,205, - 83,101,116,117,112,32,116,104,101,32,112,97,116,104,45,98, - 97,115,101,100,32,105,109,112,111,114,116,101,114,115,32,102, - 111,114,32,105,109,112,111,114,116,108,105,98,32,98,121,32, - 105,109,112,111,114,116,105,110,103,32,110,101,101,100,101,100, - 10,32,32,32,32,98,117,105,108,116,45,105,110,32,109,111, - 100,117,108,101,115,32,97,110,100,32,105,110,106,101,99,116, - 105,110,103,32,116,104,101,109,32,105,110,116,111,32,116,104, - 101,32,103,108,111,98,97,108,32,110,97,109,101,115,112,97, - 99,101,46,10,10,32,32,32,32,79,116,104,101,114,32,99, - 111,109,112,111,110,101,110,116,115,32,97,114,101,32,101,120, - 116,114,97,99,116,101,100,32,102,114,111,109,32,116,104,101, - 32,99,111,114,101,32,98,111,111,116,115,116,114,97,112,32, - 109,111,100,117,108,101,46,10,10,32,32,32,32,114,49,0, - 0,0,114,60,0,0,0,218,8,98,117,105,108,116,105,110, - 115,114,147,0,0,0,90,5,112,111,115,105,120,250,1,47, - 218,2,110,116,250,1,92,99,1,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,115,0,0,0,115,33,0,0, - 0,124,0,0,93,23,0,125,1,0,116,0,0,124,1,0, - 131,1,0,100,0,0,107,2,0,86,1,113,3,0,100,1, - 0,83,41,2,114,29,0,0,0,78,41,1,114,31,0,0, - 0,41,2,114,22,0,0,0,114,77,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,114,231,0,0, - 0,127,5,0,0,115,2,0,0,0,6,0,122,25,95,115, - 101,116,117,112,46,60,108,111,99,97,108,115,62,46,60,103, - 101,110,101,120,112,114,62,114,59,0,0,0,122,30,105,109, - 112,111,114,116,108,105,98,32,114,101,113,117,105,114,101,115, - 32,112,111,115,105,120,32,111,114,32,110,116,114,3,0,0, - 0,114,25,0,0,0,114,21,0,0,0,114,30,0,0,0, - 90,7,95,116,104,114,101,97,100,78,90,8,95,119,101,97, - 107,114,101,102,90,6,119,105,110,114,101,103,114,173,0,0, - 0,114,6,0,0,0,122,4,46,112,121,119,122,6,95,100, - 46,112,121,100,84,41,4,122,3,95,105,111,122,9,95,119, - 97,114,110,105,110,103,115,122,8,98,117,105,108,116,105,110, - 115,122,7,109,97,114,115,104,97,108,41,19,114,121,0,0, - 0,114,7,0,0,0,114,150,0,0,0,114,132,0,0,0, - 114,112,0,0,0,90,18,95,98,117,105,108,116,105,110,95, - 102,114,111,109,95,110,97,109,101,114,116,0,0,0,218,3, - 97,108,108,218,14,65,115,115,101,114,116,105,111,110,69,114, - 114,111,114,114,107,0,0,0,114,26,0,0,0,114,11,0, - 0,0,114,233,0,0,0,114,154,0,0,0,114,27,1,0, - 0,114,84,0,0,0,114,169,0,0,0,114,172,0,0,0, - 114,177,0,0,0,41,12,218,17,95,98,111,111,116,115,116, - 114,97,112,95,109,111,100,117,108,101,90,11,115,101,108,102, - 95,109,111,100,117,108,101,90,12,98,117,105,108,116,105,110, - 95,110,97,109,101,90,14,98,117,105,108,116,105,110,95,109, - 111,100,117,108,101,90,10,111,115,95,100,101,116,97,105,108, - 115,90,10,98,117,105,108,116,105,110,95,111,115,114,21,0, - 0,0,114,25,0,0,0,90,9,111,115,95,109,111,100,117, - 108,101,90,13,116,104,114,101,97,100,95,109,111,100,117,108, - 101,90,14,119,101,97,107,114,101,102,95,109,111,100,117,108, - 101,90,13,119,105,110,114,101,103,95,109,111,100,117,108,101, - 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, - 6,95,115,101,116,117,112,102,5,0,0,115,82,0,0,0, - 0,8,6,1,9,1,9,3,13,1,13,1,15,1,18,2, - 13,1,20,3,33,1,19,2,31,1,10,1,15,1,13,1, - 4,2,3,1,15,1,5,1,13,1,12,2,12,1,16,1, - 16,1,25,3,3,1,19,1,13,2,11,1,16,3,15,1, - 16,3,12,1,15,1,16,3,19,1,19,1,12,1,13,1, - 12,1,114,35,1,0,0,99,1,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,67,0,0,0,115,116,0,0, - 0,116,0,0,124,0,0,131,1,0,1,116,1,0,131,0, - 0,125,1,0,116,2,0,106,3,0,106,4,0,116,5,0, - 106,6,0,124,1,0,140,0,0,103,1,0,131,1,0,1, - 116,7,0,106,8,0,100,1,0,107,2,0,114,78,0,116, - 2,0,106,9,0,106,10,0,116,11,0,131,1,0,1,116, - 2,0,106,9,0,106,10,0,116,12,0,131,1,0,1,116, - 5,0,124,0,0,95,5,0,116,13,0,124,0,0,95,13, - 0,100,2,0,83,41,3,122,41,73,110,115,116,97,108,108, - 32,116,104,101,32,112,97,116,104,45,98,97,115,101,100,32, - 105,109,112,111,114,116,32,99,111,109,112,111,110,101,110,116, - 115,46,114,30,1,0,0,78,41,14,114,35,1,0,0,114, - 167,0,0,0,114,7,0,0,0,114,1,1,0,0,114,154, - 0,0,0,114,9,1,0,0,114,22,1,0,0,114,3,0, - 0,0,114,112,0,0,0,218,9,109,101,116,97,95,112,97, - 116,104,114,169,0,0,0,114,172,0,0,0,114,252,0,0, - 0,114,219,0,0,0,41,2,114,34,1,0,0,90,17,115, - 117,112,112,111,114,116,101,100,95,108,111,97,100,101,114,115, - 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, - 8,95,105,110,115,116,97,108,108,170,5,0,0,115,16,0, - 0,0,0,2,10,1,9,1,28,1,15,1,16,1,16,4, - 9,1,114,37,1,0,0,41,3,122,3,119,105,110,114,1, - 0,0,0,114,2,0,0,0,41,59,114,114,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,17,0,0,0,114,19, - 0,0,0,114,28,0,0,0,114,38,0,0,0,114,39,0, - 0,0,114,43,0,0,0,114,44,0,0,0,114,46,0,0, - 0,114,55,0,0,0,218,4,116,121,112,101,218,8,95,95, - 99,111,100,101,95,95,114,149,0,0,0,114,15,0,0,0, - 114,140,0,0,0,114,14,0,0,0,114,18,0,0,0,90, - 17,95,82,65,87,95,77,65,71,73,67,95,78,85,77,66, - 69,82,114,73,0,0,0,114,72,0,0,0,114,84,0,0, - 0,114,74,0,0,0,90,23,68,69,66,85,71,95,66,89, - 84,69,67,79,68,69,95,83,85,70,70,73,88,69,83,90, - 27,79,80,84,73,77,73,90,69,68,95,66,89,84,69,67, - 79,68,69,95,83,85,70,70,73,88,69,83,114,79,0,0, - 0,114,85,0,0,0,114,91,0,0,0,114,95,0,0,0, - 114,97,0,0,0,114,105,0,0,0,114,123,0,0,0,114, - 130,0,0,0,114,135,0,0,0,114,146,0,0,0,114,152, - 0,0,0,114,155,0,0,0,114,160,0,0,0,114,131,0, - 0,0,218,6,111,98,106,101,99,116,114,168,0,0,0,114, - 165,0,0,0,114,172,0,0,0,114,187,0,0,0,114,195, - 0,0,0,114,211,0,0,0,114,219,0,0,0,114,224,0, - 0,0,114,233,0,0,0,114,225,0,0,0,114,234,0,0, - 0,114,250,0,0,0,114,252,0,0,0,114,9,1,0,0, - 114,26,1,0,0,114,167,0,0,0,114,35,1,0,0,114, - 37,1,0,0,114,4,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,5,0,0,0,218,8,60,109,111,100,117,108, - 101,62,8,0,0,0,115,104,0,0,0,6,17,6,3,12, - 12,12,5,12,5,12,6,12,12,12,10,12,9,12,5,12, - 7,15,22,15,107,22,1,18,2,6,1,6,2,9,2,9, - 2,10,2,21,44,12,33,12,19,12,12,12,12,18,8,12, - 27,12,18,12,15,21,55,21,12,18,10,12,14,24,22,9, - 3,12,1,15,65,19,63,19,27,22,110,19,41,25,43,25, - 16,6,3,19,57,19,57,19,41,19,134,19,146,15,23,12, - 11,12,68, + 105,111,110,115,41,46,70,114,58,0,0,0,114,56,0,0, + 0,114,29,0,0,0,114,188,0,0,0,122,9,116,114,121, + 105,110,103,32,123,125,114,98,0,0,0,78,122,25,112,111, + 115,115,105,98,108,101,32,110,97,109,101,115,112,97,99,101, + 32,102,111,114,32,123,125,114,87,0,0,0,41,23,114,32, + 0,0,0,114,39,0,0,0,114,35,0,0,0,114,3,0, + 0,0,114,45,0,0,0,114,220,0,0,0,114,40,0,0, + 0,114,11,1,0,0,218,11,95,102,105,108,108,95,99,97, + 99,104,101,114,6,0,0,0,114,14,1,0,0,114,88,0, + 0,0,114,13,1,0,0,114,28,0,0,0,114,10,1,0, + 0,114,44,0,0,0,114,8,1,0,0,114,46,0,0,0, + 114,105,0,0,0,114,47,0,0,0,114,121,0,0,0,114, + 166,0,0,0,114,164,0,0,0,41,14,114,108,0,0,0, + 114,126,0,0,0,114,183,0,0,0,90,12,105,115,95,110, + 97,109,101,115,112,97,99,101,90,11,116,97,105,108,95,109, + 111,100,117,108,101,114,138,0,0,0,90,5,99,97,99,104, + 101,90,12,99,97,99,104,101,95,109,111,100,117,108,101,90, + 9,98,97,115,101,95,112,97,116,104,114,229,0,0,0,114, + 170,0,0,0,90,13,105,110,105,116,95,102,105,108,101,110, + 97,109,101,90,9,102,117,108,108,95,112,97,116,104,114,133, + 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, + 0,0,114,184,0,0,0,225,4,0,0,115,68,0,0,0, + 0,3,6,1,19,1,3,1,34,1,13,1,11,1,15,1, + 10,1,9,2,9,1,9,1,15,2,9,1,6,2,12,1, + 18,1,22,1,10,1,15,1,12,1,32,4,12,2,22,1, + 22,1,25,1,16,1,12,1,29,1,6,1,19,1,18,1, + 12,1,4,1,122,20,70,105,108,101,70,105,110,100,101,114, + 46,102,105,110,100,95,115,112,101,99,99,1,0,0,0,0, + 0,0,0,9,0,0,0,13,0,0,0,67,0,0,0,115, + 11,1,0,0,124,0,0,106,0,0,125,1,0,121,31,0, + 116,1,0,106,2,0,124,1,0,112,33,0,116,1,0,106, + 3,0,131,0,0,131,1,0,125,2,0,87,110,33,0,4, + 116,4,0,116,5,0,116,6,0,102,3,0,107,10,0,114, + 75,0,1,1,1,103,0,0,125,2,0,89,110,1,0,88, + 116,7,0,106,8,0,106,9,0,100,1,0,131,1,0,115, + 112,0,116,10,0,124,2,0,131,1,0,124,0,0,95,11, + 0,110,111,0,116,10,0,131,0,0,125,3,0,120,90,0, + 124,2,0,68,93,82,0,125,4,0,124,4,0,106,12,0, + 100,2,0,131,1,0,92,3,0,125,5,0,125,6,0,125, + 7,0,124,6,0,114,191,0,100,3,0,106,13,0,124,5, + 0,124,7,0,106,14,0,131,0,0,131,2,0,125,8,0, + 110,6,0,124,5,0,125,8,0,124,3,0,106,15,0,124, + 8,0,131,1,0,1,113,128,0,87,124,3,0,124,0,0, + 95,11,0,116,7,0,106,8,0,106,9,0,116,16,0,131, + 1,0,114,7,1,100,4,0,100,5,0,132,0,0,124,2, + 0,68,131,1,0,124,0,0,95,17,0,100,6,0,83,41, + 7,122,68,70,105,108,108,32,116,104,101,32,99,97,99,104, + 101,32,111,102,32,112,111,116,101,110,116,105,97,108,32,109, + 111,100,117,108,101,115,32,97,110,100,32,112,97,99,107,97, + 103,101,115,32,102,111,114,32,116,104,105,115,32,100,105,114, + 101,99,116,111,114,121,46,114,0,0,0,0,114,58,0,0, + 0,122,5,123,125,46,123,125,99,1,0,0,0,0,0,0, + 0,2,0,0,0,3,0,0,0,83,0,0,0,115,28,0, + 0,0,104,0,0,124,0,0,93,18,0,125,1,0,124,1, + 0,106,0,0,131,0,0,146,2,0,113,6,0,83,114,4, + 0,0,0,41,1,114,88,0,0,0,41,2,114,22,0,0, + 0,90,2,102,110,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,250,9,60,115,101,116,99,111,109,112,62,43, + 5,0,0,115,2,0,0,0,9,0,122,41,70,105,108,101, + 70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,99, + 104,101,46,60,108,111,99,97,108,115,62,46,60,115,101,116, + 99,111,109,112,62,78,41,18,114,35,0,0,0,114,3,0, + 0,0,90,7,108,105,115,116,100,105,114,114,45,0,0,0, + 114,3,1,0,0,218,15,80,101,114,109,105,115,115,105,111, + 110,69,114,114,111,114,218,18,78,111,116,65,68,105,114,101, + 99,116,111,114,121,69,114,114,111,114,114,7,0,0,0,114, + 8,0,0,0,114,9,0,0,0,114,12,1,0,0,114,13, + 1,0,0,114,83,0,0,0,114,47,0,0,0,114,88,0, + 0,0,218,3,97,100,100,114,10,0,0,0,114,14,1,0, + 0,41,9,114,108,0,0,0,114,35,0,0,0,90,8,99, + 111,110,116,101,110,116,115,90,21,108,111,119,101,114,95,115, + 117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,248, + 0,0,0,114,106,0,0,0,114,241,0,0,0,114,229,0, + 0,0,90,8,110,101,119,95,110,97,109,101,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,114,16,1,0,0, + 14,5,0,0,115,34,0,0,0,0,2,9,1,3,1,31, + 1,22,3,11,3,18,1,18,7,9,1,13,1,24,1,6, + 1,27,2,6,1,17,1,9,1,18,1,122,22,70,105,108, + 101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,97, + 99,104,101,99,1,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,7,0,0,0,115,25,0,0,0,135,0,0, + 135,1,0,102,2,0,100,1,0,100,2,0,134,0,0,125, + 2,0,124,2,0,83,41,3,97,20,1,0,0,65,32,99, + 108,97,115,115,32,109,101,116,104,111,100,32,119,104,105,99, + 104,32,114,101,116,117,114,110,115,32,97,32,99,108,111,115, + 117,114,101,32,116,111,32,117,115,101,32,111,110,32,115,121, + 115,46,112,97,116,104,95,104,111,111,107,10,32,32,32,32, + 32,32,32,32,119,104,105,99,104,32,119,105,108,108,32,114, + 101,116,117,114,110,32,97,110,32,105,110,115,116,97,110,99, + 101,32,117,115,105,110,103,32,116,104,101,32,115,112,101,99, + 105,102,105,101,100,32,108,111,97,100,101,114,115,32,97,110, + 100,32,116,104,101,32,112,97,116,104,10,32,32,32,32,32, + 32,32,32,99,97,108,108,101,100,32,111,110,32,116,104,101, + 32,99,108,111,115,117,114,101,46,10,10,32,32,32,32,32, + 32,32,32,73,102,32,116,104,101,32,112,97,116,104,32,99, + 97,108,108,101,100,32,111,110,32,116,104,101,32,99,108,111, + 115,117,114,101,32,105,115,32,110,111,116,32,97,32,100,105, + 114,101,99,116,111,114,121,44,32,73,109,112,111,114,116,69, + 114,114,111,114,32,105,115,10,32,32,32,32,32,32,32,32, + 114,97,105,115,101,100,46,10,10,32,32,32,32,32,32,32, + 32,99,1,0,0,0,0,0,0,0,1,0,0,0,4,0, + 0,0,19,0,0,0,115,43,0,0,0,116,0,0,124,0, + 0,131,1,0,115,30,0,116,1,0,100,1,0,100,2,0, + 124,0,0,131,1,1,130,1,0,136,0,0,124,0,0,136, + 1,0,140,1,0,83,41,3,122,45,80,97,116,104,32,104, + 111,111,107,32,102,111,114,32,105,109,112,111,114,116,108,105, + 98,46,109,97,99,104,105,110,101,114,121,46,70,105,108,101, + 70,105,110,100,101,114,46,122,30,111,110,108,121,32,100,105, + 114,101,99,116,111,114,105,101,115,32,97,114,101,32,115,117, + 112,112,111,114,116,101,100,114,35,0,0,0,41,2,114,46, + 0,0,0,114,107,0,0,0,41,1,114,35,0,0,0,41, + 2,114,174,0,0,0,114,15,1,0,0,114,4,0,0,0, + 114,5,0,0,0,218,24,112,97,116,104,95,104,111,111,107, + 95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,55, + 5,0,0,115,6,0,0,0,0,2,12,1,18,1,122,54, + 70,105,108,101,70,105,110,100,101,114,46,112,97,116,104,95, + 104,111,111,107,46,60,108,111,99,97,108,115,62,46,112,97, + 116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,101, + 70,105,110,100,101,114,114,4,0,0,0,41,3,114,174,0, + 0,0,114,15,1,0,0,114,21,1,0,0,114,4,0,0, + 0,41,2,114,174,0,0,0,114,15,1,0,0,114,5,0, + 0,0,218,9,112,97,116,104,95,104,111,111,107,45,5,0, + 0,115,4,0,0,0,0,10,21,6,122,20,70,105,108,101, + 70,105,110,100,101,114,46,112,97,116,104,95,104,111,111,107, + 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0, + 0,67,0,0,0,115,16,0,0,0,100,1,0,106,0,0, + 124,0,0,106,1,0,131,1,0,83,41,2,78,122,16,70, + 105,108,101,70,105,110,100,101,114,40,123,33,114,125,41,41, + 2,114,47,0,0,0,114,35,0,0,0,41,1,114,108,0, + 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, + 0,114,247,0,0,0,63,5,0,0,115,2,0,0,0,0, + 1,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95, + 114,101,112,114,95,95,41,15,114,112,0,0,0,114,111,0, + 0,0,114,113,0,0,0,114,114,0,0,0,114,188,0,0, + 0,114,253,0,0,0,114,130,0,0,0,114,185,0,0,0, + 114,124,0,0,0,114,8,1,0,0,114,184,0,0,0,114, + 16,1,0,0,114,186,0,0,0,114,22,1,0,0,114,247, + 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,114,9,1,0,0,179,4,0,0, + 115,20,0,0,0,12,7,6,2,12,14,12,4,6,2,12, + 12,12,5,15,45,12,31,18,18,114,9,1,0,0,99,4, + 0,0,0,0,0,0,0,6,0,0,0,11,0,0,0,67, + 0,0,0,115,195,0,0,0,124,0,0,106,0,0,100,1, + 0,131,1,0,125,4,0,124,0,0,106,0,0,100,2,0, + 131,1,0,125,5,0,124,4,0,115,99,0,124,5,0,114, + 54,0,124,5,0,106,1,0,125,4,0,110,45,0,124,2, + 0,124,3,0,107,2,0,114,84,0,116,2,0,124,1,0, + 124,2,0,131,2,0,125,4,0,110,15,0,116,3,0,124, + 1,0,124,2,0,131,2,0,125,4,0,124,5,0,115,126, + 0,116,4,0,124,1,0,124,2,0,100,3,0,124,4,0, + 131,2,1,125,5,0,121,44,0,124,5,0,124,0,0,100, + 2,0,60,124,4,0,124,0,0,100,1,0,60,124,2,0, + 124,0,0,100,4,0,60,124,3,0,124,0,0,100,5,0, + 60,87,110,18,0,4,116,5,0,107,10,0,114,190,0,1, + 1,1,89,110,1,0,88,100,0,0,83,41,6,78,114,227, + 0,0,0,218,8,95,95,115,112,101,99,95,95,114,127,0, + 0,0,90,8,95,95,102,105,108,101,95,95,90,10,95,95, + 99,97,99,104,101,100,95,95,41,6,218,3,103,101,116,114, + 127,0,0,0,114,224,0,0,0,114,219,0,0,0,114,165, + 0,0,0,218,9,69,120,99,101,112,116,105,111,110,41,6, + 90,2,110,115,114,106,0,0,0,90,8,112,97,116,104,110, + 97,109,101,90,9,99,112,97,116,104,110,97,109,101,114,127, + 0,0,0,114,133,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,218,14,95,102,105,120,95,117,112, + 95,109,111,100,117,108,101,69,5,0,0,115,34,0,0,0, + 0,2,15,1,15,1,6,1,6,1,12,1,12,1,18,2, + 15,1,6,1,21,1,3,1,10,1,10,1,10,1,14,1, + 13,2,114,26,1,0,0,99,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,67,0,0,0,115,55,0,0, + 0,116,0,0,116,1,0,106,2,0,131,0,0,102,2,0, + 125,0,0,116,3,0,116,4,0,102,2,0,125,1,0,116, + 5,0,116,6,0,102,2,0,125,2,0,124,0,0,124,1, + 0,124,2,0,103,3,0,83,41,1,122,95,82,101,116,117, + 114,110,115,32,97,32,108,105,115,116,32,111,102,32,102,105, + 108,101,45,98,97,115,101,100,32,109,111,100,117,108,101,32, + 108,111,97,100,101,114,115,46,10,10,32,32,32,32,69,97, + 99,104,32,105,116,101,109,32,105,115,32,97,32,116,117,112, + 108,101,32,40,108,111,97,100,101,114,44,32,115,117,102,102, + 105,120,101,115,41,46,10,32,32,32,32,41,7,114,225,0, + 0,0,114,150,0,0,0,218,18,101,120,116,101,110,115,105, + 111,110,95,115,117,102,102,105,120,101,115,114,219,0,0,0, + 114,84,0,0,0,114,224,0,0,0,114,74,0,0,0,41, + 3,90,10,101,120,116,101,110,115,105,111,110,115,90,6,115, + 111,117,114,99,101,90,8,98,121,116,101,99,111,100,101,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,167, + 0,0,0,92,5,0,0,115,8,0,0,0,0,5,18,1, + 12,1,12,1,114,167,0,0,0,99,1,0,0,0,0,0, + 0,0,12,0,0,0,12,0,0,0,67,0,0,0,115,70, + 2,0,0,124,0,0,97,0,0,116,0,0,106,1,0,97, + 1,0,116,0,0,106,2,0,97,2,0,116,1,0,106,3, + 0,116,4,0,25,125,1,0,120,76,0,100,26,0,68,93, + 68,0,125,2,0,124,2,0,116,1,0,106,3,0,107,7, + 0,114,83,0,116,0,0,106,5,0,124,2,0,131,1,0, + 125,3,0,110,13,0,116,1,0,106,3,0,124,2,0,25, + 125,3,0,116,6,0,124,1,0,124,2,0,124,3,0,131, + 3,0,1,113,44,0,87,100,5,0,100,6,0,103,1,0, + 102,2,0,100,7,0,100,8,0,100,6,0,103,2,0,102, + 2,0,102,2,0,125,4,0,120,149,0,124,4,0,68,93, + 129,0,92,2,0,125,5,0,125,6,0,116,7,0,100,9, + 0,100,10,0,132,0,0,124,6,0,68,131,1,0,131,1, + 0,115,199,0,116,8,0,130,1,0,124,6,0,100,11,0, + 25,125,7,0,124,5,0,116,1,0,106,3,0,107,6,0, + 114,241,0,116,1,0,106,3,0,124,5,0,25,125,8,0, + 80,113,156,0,121,20,0,116,0,0,106,5,0,124,5,0, + 131,1,0,125,8,0,80,87,113,156,0,4,116,9,0,107, + 10,0,114,28,1,1,1,1,119,156,0,89,113,156,0,88, + 113,156,0,87,116,9,0,100,12,0,131,1,0,130,1,0, + 116,6,0,124,1,0,100,13,0,124,8,0,131,3,0,1, + 116,6,0,124,1,0,100,14,0,124,7,0,131,3,0,1, + 116,6,0,124,1,0,100,15,0,100,16,0,106,10,0,124, + 6,0,131,1,0,131,3,0,1,121,19,0,116,0,0,106, + 5,0,100,17,0,131,1,0,125,9,0,87,110,24,0,4, + 116,9,0,107,10,0,114,147,1,1,1,1,100,18,0,125, + 9,0,89,110,1,0,88,116,6,0,124,1,0,100,17,0, + 124,9,0,131,3,0,1,116,0,0,106,5,0,100,19,0, + 131,1,0,125,10,0,116,6,0,124,1,0,100,19,0,124, + 10,0,131,3,0,1,124,5,0,100,7,0,107,2,0,114, + 238,1,116,0,0,106,5,0,100,20,0,131,1,0,125,11, + 0,116,6,0,124,1,0,100,21,0,124,11,0,131,3,0, + 1,116,6,0,124,1,0,100,22,0,116,11,0,131,0,0, + 131,3,0,1,116,12,0,106,13,0,116,2,0,106,14,0, + 131,0,0,131,1,0,1,124,5,0,100,7,0,107,2,0, + 114,66,2,116,15,0,106,16,0,100,23,0,131,1,0,1, + 100,24,0,116,12,0,107,6,0,114,66,2,100,25,0,116, + 17,0,95,18,0,100,18,0,83,41,27,122,205,83,101,116, + 117,112,32,116,104,101,32,112,97,116,104,45,98,97,115,101, + 100,32,105,109,112,111,114,116,101,114,115,32,102,111,114,32, + 105,109,112,111,114,116,108,105,98,32,98,121,32,105,109,112, + 111,114,116,105,110,103,32,110,101,101,100,101,100,10,32,32, + 32,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, + 101,115,32,97,110,100,32,105,110,106,101,99,116,105,110,103, + 32,116,104,101,109,32,105,110,116,111,32,116,104,101,32,103, + 108,111,98,97,108,32,110,97,109,101,115,112,97,99,101,46, + 10,10,32,32,32,32,79,116,104,101,114,32,99,111,109,112, + 111,110,101,110,116,115,32,97,114,101,32,101,120,116,114,97, + 99,116,101,100,32,102,114,111,109,32,116,104,101,32,99,111, + 114,101,32,98,111,111,116,115,116,114,97,112,32,109,111,100, + 117,108,101,46,10,10,32,32,32,32,114,49,0,0,0,114, + 60,0,0,0,218,8,98,117,105,108,116,105,110,115,114,147, + 0,0,0,90,5,112,111,115,105,120,250,1,47,218,2,110, + 116,250,1,92,99,1,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,115,0,0,0,115,33,0,0,0,124,0, + 0,93,23,0,125,1,0,116,0,0,124,1,0,131,1,0, + 100,0,0,107,2,0,86,1,113,3,0,100,1,0,83,41, + 2,114,29,0,0,0,78,41,1,114,31,0,0,0,41,2, + 114,22,0,0,0,114,77,0,0,0,114,4,0,0,0,114, + 4,0,0,0,114,5,0,0,0,114,231,0,0,0,128,5, + 0,0,115,2,0,0,0,6,0,122,25,95,115,101,116,117, + 112,46,60,108,111,99,97,108,115,62,46,60,103,101,110,101, + 120,112,114,62,114,59,0,0,0,122,30,105,109,112,111,114, + 116,108,105,98,32,114,101,113,117,105,114,101,115,32,112,111, + 115,105,120,32,111,114,32,110,116,114,3,0,0,0,114,25, + 0,0,0,114,21,0,0,0,114,30,0,0,0,90,7,95, + 116,104,114,101,97,100,78,90,8,95,119,101,97,107,114,101, + 102,90,6,119,105,110,114,101,103,114,173,0,0,0,114,6, + 0,0,0,122,4,46,112,121,119,122,6,95,100,46,112,121, + 100,84,41,4,122,3,95,105,111,122,9,95,119,97,114,110, + 105,110,103,115,122,8,98,117,105,108,116,105,110,115,122,7, + 109,97,114,115,104,97,108,41,19,114,121,0,0,0,114,7, + 0,0,0,114,150,0,0,0,114,132,0,0,0,114,112,0, + 0,0,90,18,95,98,117,105,108,116,105,110,95,102,114,111, + 109,95,110,97,109,101,114,116,0,0,0,218,3,97,108,108, + 218,14,65,115,115,101,114,116,105,111,110,69,114,114,111,114, + 114,107,0,0,0,114,26,0,0,0,114,11,0,0,0,114, + 233,0,0,0,114,154,0,0,0,114,27,1,0,0,114,84, + 0,0,0,114,169,0,0,0,114,172,0,0,0,114,177,0, + 0,0,41,12,218,17,95,98,111,111,116,115,116,114,97,112, + 95,109,111,100,117,108,101,90,11,115,101,108,102,95,109,111, + 100,117,108,101,90,12,98,117,105,108,116,105,110,95,110,97, + 109,101,90,14,98,117,105,108,116,105,110,95,109,111,100,117, + 108,101,90,10,111,115,95,100,101,116,97,105,108,115,90,10, + 98,117,105,108,116,105,110,95,111,115,114,21,0,0,0,114, + 25,0,0,0,90,9,111,115,95,109,111,100,117,108,101,90, + 13,116,104,114,101,97,100,95,109,111,100,117,108,101,90,14, + 119,101,97,107,114,101,102,95,109,111,100,117,108,101,90,13, + 119,105,110,114,101,103,95,109,111,100,117,108,101,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,6,95,115, + 101,116,117,112,103,5,0,0,115,82,0,0,0,0,8,6, + 1,9,1,9,3,13,1,13,1,15,1,18,2,13,1,20, + 3,33,1,19,2,31,1,10,1,15,1,13,1,4,2,3, + 1,15,1,5,1,13,1,12,2,12,1,16,1,16,1,25, + 3,3,1,19,1,13,2,11,1,16,3,15,1,16,3,12, + 1,15,1,16,3,19,1,19,1,12,1,13,1,12,1,114, + 35,1,0,0,99,1,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,67,0,0,0,115,116,0,0,0,116,0, + 0,124,0,0,131,1,0,1,116,1,0,131,0,0,125,1, + 0,116,2,0,106,3,0,106,4,0,116,5,0,106,6,0, + 124,1,0,140,0,0,103,1,0,131,1,0,1,116,7,0, + 106,8,0,100,1,0,107,2,0,114,78,0,116,2,0,106, + 9,0,106,10,0,116,11,0,131,1,0,1,116,2,0,106, + 9,0,106,10,0,116,12,0,131,1,0,1,116,5,0,124, + 0,0,95,5,0,116,13,0,124,0,0,95,13,0,100,2, + 0,83,41,3,122,41,73,110,115,116,97,108,108,32,116,104, + 101,32,112,97,116,104,45,98,97,115,101,100,32,105,109,112, + 111,114,116,32,99,111,109,112,111,110,101,110,116,115,46,114, + 30,1,0,0,78,41,14,114,35,1,0,0,114,167,0,0, + 0,114,7,0,0,0,114,1,1,0,0,114,154,0,0,0, + 114,9,1,0,0,114,22,1,0,0,114,3,0,0,0,114, + 112,0,0,0,218,9,109,101,116,97,95,112,97,116,104,114, + 169,0,0,0,114,172,0,0,0,114,252,0,0,0,114,219, + 0,0,0,41,2,114,34,1,0,0,90,17,115,117,112,112, + 111,114,116,101,100,95,108,111,97,100,101,114,115,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,8,95,105, + 110,115,116,97,108,108,171,5,0,0,115,16,0,0,0,0, + 2,10,1,9,1,28,1,15,1,16,1,16,4,9,1,114, + 37,1,0,0,41,3,122,3,119,105,110,114,1,0,0,0, + 114,2,0,0,0,41,59,114,114,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,17,0,0,0,114,19,0,0,0, + 114,28,0,0,0,114,38,0,0,0,114,39,0,0,0,114, + 43,0,0,0,114,44,0,0,0,114,46,0,0,0,114,55, + 0,0,0,218,4,116,121,112,101,218,8,95,95,99,111,100, + 101,95,95,114,149,0,0,0,114,15,0,0,0,114,140,0, + 0,0,114,14,0,0,0,114,18,0,0,0,90,17,95,82, + 65,87,95,77,65,71,73,67,95,78,85,77,66,69,82,114, + 73,0,0,0,114,72,0,0,0,114,84,0,0,0,114,74, + 0,0,0,90,23,68,69,66,85,71,95,66,89,84,69,67, + 79,68,69,95,83,85,70,70,73,88,69,83,90,27,79,80, + 84,73,77,73,90,69,68,95,66,89,84,69,67,79,68,69, + 95,83,85,70,70,73,88,69,83,114,79,0,0,0,114,85, + 0,0,0,114,91,0,0,0,114,95,0,0,0,114,97,0, + 0,0,114,105,0,0,0,114,123,0,0,0,114,130,0,0, + 0,114,135,0,0,0,114,146,0,0,0,114,152,0,0,0, + 114,155,0,0,0,114,160,0,0,0,114,131,0,0,0,218, + 6,111,98,106,101,99,116,114,168,0,0,0,114,165,0,0, + 0,114,172,0,0,0,114,187,0,0,0,114,195,0,0,0, + 114,211,0,0,0,114,219,0,0,0,114,224,0,0,0,114, + 233,0,0,0,114,225,0,0,0,114,234,0,0,0,114,250, + 0,0,0,114,252,0,0,0,114,9,1,0,0,114,26,1, + 0,0,114,167,0,0,0,114,35,1,0,0,114,37,1,0, + 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,5,0,0,0,218,8,60,109,111,100,117,108,101,62,8, + 0,0,0,115,104,0,0,0,6,17,6,3,12,12,12,5, + 12,5,12,6,12,12,12,10,12,9,12,5,12,7,15,22, + 15,108,22,1,18,2,6,1,6,2,9,2,9,2,10,2, + 21,44,12,33,12,19,12,12,12,12,18,8,12,27,12,18, + 12,15,21,55,21,12,18,10,12,14,24,22,9,3,12,1, + 15,65,19,63,19,27,22,110,19,41,25,43,25,16,6,3, + 19,57,19,57,19,41,19,134,19,146,15,23,12,11,12,68, }; diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 1553a7a..45843c3 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -148,11 +148,11 @@ static void *opcode_targets[256] = { &&TARGET_SET_ADD, &&TARGET_MAP_ADD, &&TARGET_LOAD_CLASSDEREF, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, + &&TARGET_BUILD_LIST_UNPACK, + &&TARGET_BUILD_MAP_UNPACK, + &&TARGET_BUILD_MAP_UNPACK_WITH_CALL, + &&TARGET_BUILD_TUPLE_UNPACK, + &&TARGET_BUILD_SET_UNPACK, &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, diff --git a/Python/symtable.c b/Python/symtable.c index fbbe77f..812c052 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -1083,13 +1083,13 @@ error: } \ } -#define VISIT_KWONLYDEFAULTS(ST, KW_DEFAULTS) { \ +#define VISIT_SEQ_WITH_NULL(ST, TYPE, SEQ) { \ int i = 0; \ - asdl_seq *seq = (KW_DEFAULTS); /* avoid variable capture */ \ + asdl_seq *seq = (SEQ); /* avoid variable capture */ \ for (i = 0; i < asdl_seq_LEN(seq); i++) { \ - expr_ty elt = (expr_ty)asdl_seq_GET(seq, i); \ + TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \ if (!elt) continue; /* can be NULL */ \ - if (!symtable_visit_expr((ST), elt)) \ + if (!symtable_visit_ ## TYPE((ST), elt)) \ VISIT_QUIT((ST), 0); \ } \ } @@ -1146,8 +1146,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s) if (s->v.FunctionDef.args->defaults) VISIT_SEQ(st, expr, s->v.FunctionDef.args->defaults); if (s->v.FunctionDef.args->kw_defaults) - VISIT_KWONLYDEFAULTS(st, - s->v.FunctionDef.args->kw_defaults); + VISIT_SEQ_WITH_NULL(st, expr, s->v.FunctionDef.args->kw_defaults); if (!symtable_visit_annotations(st, s)) VISIT_QUIT(st, 0); if (s->v.FunctionDef.decorator_list) @@ -1167,10 +1166,6 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s) VISIT_QUIT(st, 0); VISIT_SEQ(st, expr, s->v.ClassDef.bases); VISIT_SEQ(st, keyword, s->v.ClassDef.keywords); - if (s->v.ClassDef.starargs) - VISIT(st, expr, s->v.ClassDef.starargs); - if (s->v.ClassDef.kwargs) - VISIT(st, expr, s->v.ClassDef.kwargs); if (s->v.ClassDef.decorator_list) VISIT_SEQ(st, expr, s->v.ClassDef.decorator_list); if (!symtable_enter_block(st, s->v.ClassDef.name, ClassBlock, @@ -1349,8 +1344,7 @@ symtable_visit_expr(struct symtable *st, expr_ty e) if (e->v.Lambda.args->defaults) VISIT_SEQ(st, expr, e->v.Lambda.args->defaults); if (e->v.Lambda.args->kw_defaults) - VISIT_KWONLYDEFAULTS(st, - e->v.Lambda.args->kw_defaults); + VISIT_SEQ_WITH_NULL(st, expr, e->v.Lambda.args->kw_defaults); if (!symtable_enter_block(st, lambda, FunctionBlock, (void *)e, e->lineno, e->col_offset)) @@ -1367,7 +1361,7 @@ symtable_visit_expr(struct symtable *st, expr_ty e) VISIT(st, expr, e->v.IfExp.orelse); break; case Dict_kind: - VISIT_SEQ(st, expr, e->v.Dict.keys); + VISIT_SEQ_WITH_NULL(st, expr, e->v.Dict.keys); VISIT_SEQ(st, expr, e->v.Dict.values); break; case Set_kind: @@ -1405,11 +1399,7 @@ symtable_visit_expr(struct symtable *st, expr_ty e) case Call_kind: VISIT(st, expr, e->v.Call.func); VISIT_SEQ(st, expr, e->v.Call.args); - VISIT_SEQ(st, keyword, e->v.Call.keywords); - if (e->v.Call.starargs) - VISIT(st, expr, e->v.Call.starargs); - if (e->v.Call.kwargs) - VISIT(st, expr, e->v.Call.kwargs); + VISIT_SEQ_WITH_NULL(st, keyword, e->v.Call.keywords); break; case Num_kind: case Str_kind: |