diff --git a/Include/cpython/object.h b/Include/cpython/object.h index 58e4d2b11b93f9..c79a4c74ef0d69 100644 --- a/Include/cpython/object.h +++ b/Include/cpython/object.h @@ -327,6 +327,10 @@ PyAPI_FUNC(int) _PyObject_LookupAttrId(PyObject *, struct _Py_Identifier *, PyOb PyAPI_FUNC(int) _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); +PyAPI_FUNC(PyObject *) _PySuper_Lookup(PyTypeObject *type, PyObject *obj, + PyObject *name, PyObject *super_instance, + int *meth_found); + PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *); PyAPI_FUNC(PyObject *) _PyObject_NextNotImplemented(PyObject *); PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *); diff --git a/Include/opcode.h b/Include/opcode.h index ea484c5a68fc96..dfe41700983fb8 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -133,6 +133,8 @@ extern "C" { #define SET_UPDATE 163 #define DICT_MERGE 164 #define DICT_UPDATE 165 +#define LOAD_METHOD_SUPER 166 +#define LOAD_ATTR_SUPER 167 #ifdef NEED_OPCODE_JUMP_TABLES static uint32_t _PyOpcode_RelativeJump[8] = { 0U, diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index 2dab45d480a113..cc89dd4f5db5d3 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -314,6 +314,7 @@ def _write_atomic(path, data, mode=0o666): # Python 3.10a2 3432 (Function annotation for MAKE_FUNCTION is changed from dict to tuple bpo-42202) # Python 3.10a2 3433 (RERAISE restores f_lasti if oparg != 0) # Python 3.10a6 3434 (PEP 634: Structural Pattern Matching) +# Python 3.10a6 3435 (LOAD_*_SUPER opcodes) # # MAGIC must change whenever the bytecode emitted by the compiler may no @@ -323,7 +324,7 @@ def _write_atomic(path, data, mode=0o666): # Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array # in PC/launcher.c must also be updated. -MAGIC_NUMBER = (3434).to_bytes(2, 'little') + b'\r\n' +MAGIC_NUMBER = (3435).to_bytes(2, 'little') + b'\r\n' _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c _PYCACHE = '__pycache__' diff --git a/Lib/opcode.py b/Lib/opcode.py index b1197129571cd3..43ddbc6868a9ce 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -211,5 +211,9 @@ def jabs_op(name, op): def_op('SET_UPDATE', 163) def_op('DICT_MERGE', 164) def_op('DICT_UPDATE', 165) +name_op('LOAD_METHOD_SUPER', 166) +hasconst.append(166) +name_op('LOAD_ATTR_SUPER', 167) +hasconst.append(167) del def_op, name_op, jrel_op, jabs_op diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index e342a14bf01567..f961367452c38f 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -2,6 +2,7 @@ from test.support import captured_stdout from test.support.bytecode_helper import BytecodeTestCase +from textwrap import dedent import unittest import sys import dis @@ -672,6 +673,314 @@ def check(expected, **kwargs): check(dis_nested_2) + def test_super_zero_args(self): + src = """ + class C: + def f(self): super().f1() + """ + expected = """\ + 3 0 LOAD_GLOBAL 0 (super) + 2 LOAD_DEREF 0 (__class__) + 4 LOAD_FAST 0 (self) + 6 LOAD_METHOD_SUPER 1 ((1, True)) + 8 CALL_METHOD 0 + 10 POP_TOP + 12 LOAD_CONST 0 (None) + 14 RETURN_VALUE +""" + + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + + def test_super_zero_args_load_attr(self): + src = """ + class C: + def f(self): super().f1(a=1) + """ + expected = """\ + 3 0 LOAD_GLOBAL 0 (super) + 2 LOAD_DEREF 0 (__class__) + 4 LOAD_FAST 0 (self) + 6 LOAD_ATTR_SUPER 1 ((1, True)) + 8 LOAD_CONST 2 (1) + 10 LOAD_CONST 3 (('a',)) + 12 CALL_FUNCTION_KW 1 + 14 POP_TOP + 16 LOAD_CONST 0 (None) + 18 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + + def test_super_two_args(self): + src = """ + class C: + def f(self): super(C, self).f1() + """ + expected = """\ + 3 0 LOAD_GLOBAL 0 (super) + 2 LOAD_GLOBAL 1 (C) + 4 LOAD_FAST 0 (self) + 6 LOAD_METHOD_SUPER 1 ((2, False)) + 8 CALL_METHOD 0 + 10 POP_TOP + 12 LOAD_CONST 0 (None) + 14 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + + + def test_super_zero_method_args(self): + src = """ + class C: + def f(): super().f1() + """ + expected = """\ + 3 0 LOAD_GLOBAL 0 (super) + 2 CALL_FUNCTION 0 + 4 LOAD_METHOD 1 (f1) + 6 CALL_METHOD 0 + 8 POP_TOP + 10 LOAD_CONST 0 (None) + 12 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + + def test_super_two_args_attr(self): + src = """ + class C: + def f(self): super(C, self).f1(a=1) + """ + expected = """\ + 3 0 LOAD_GLOBAL 0 (super) + 2 LOAD_GLOBAL 1 (C) + 4 LOAD_FAST 0 (self) + 6 LOAD_ATTR_SUPER 1 ((2, False)) + 8 LOAD_CONST 2 (1) + 10 LOAD_CONST 3 (('a',)) + 12 CALL_FUNCTION_KW 1 + 14 POP_TOP + 16 LOAD_CONST 0 (None) + 18 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + + def test_super_attr_load(self): + src = """ + class C: + def f(self): return super().x + """ + expected = """\ + 3 0 LOAD_GLOBAL 0 (super) + 2 LOAD_DEREF 0 (__class__) + 4 LOAD_FAST 0 (self) + 6 LOAD_ATTR_SUPER 1 ((1, True)) + 8 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + expected_dis_info = """\ +Name: f +Filename: +Argument count: 1 +Positional-only arguments: 0 +Kw-only arguments: 0 +Number of locals: 1 +Stack size: 3 +Flags: OPTIMIZED, NEWLOCALS +Constants: + 0: None + 1: (1, True) +Names: + 0: super + 1: x +Variable names: + 0: self +Free variables: + 0: __class__""" + self.assertEqual(dedent(dis.code_info(g["C"].f)), expected_dis_info) + + def test_super_attr_load_self_cell(self): + src = """ + class C: + def f(self): + lambda: self + return super().x + """ + expected = """\ + 4 0 LOAD_CLOSURE 0 (self) + 2 BUILD_TUPLE 1 + 4 LOAD_CONST 1 ( at 0x..., file "", line 4>) + 6 LOAD_CONST 2 ('C.f..') + 8 MAKE_FUNCTION 8 (closure) + 10 POP_TOP + + 5 12 LOAD_GLOBAL 0 (super) + 14 LOAD_DEREF 1 (__class__) + 16 LOAD_DEREF 0 (self) + 18 LOAD_ATTR_SUPER 3 ((1, True)) + 20 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + + def test_super_attr_store(self): + src = """ + class C: + def f(self): super().x = 1 + """ + expected = """\ + 3 0 LOAD_CONST 1 (1) + 2 LOAD_GLOBAL 0 (super) + 4 CALL_FUNCTION 0 + 6 STORE_ATTR 1 (x) + 8 LOAD_CONST 0 (None) + 10 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + expected_dis_info = """\ +Name: f +Filename: +Argument count: 1 +Positional-only arguments: 0 +Kw-only arguments: 0 +Number of locals: 1 +Stack size: 2 +Flags: OPTIMIZED, NEWLOCALS +Constants: + 0: None + 1: 1 +Names: + 0: super + 1: x +Variable names: + 0: self +Free variables: + 0: __class__""" + self.assertEqual(dedent(dis.code_info(g["C"].f)), expected_dis_info) + + def test_super_as_global_1(self): + src = """ + super = 1 + class C: + def f(self): super().f1(a=1) + """ + expected = """\ + 4 0 LOAD_GLOBAL 0 (super) + 2 CALL_FUNCTION 0 + 4 LOAD_ATTR 1 (f1) + 6 LOAD_CONST 1 (1) + 8 LOAD_CONST 2 (('a',)) + 10 CALL_FUNCTION_KW 1 + 12 POP_TOP + 14 LOAD_CONST 0 (None) + 16 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + expected_dis_info = """\ +Name: f +Filename: +Argument count: 1 +Positional-only arguments: 0 +Kw-only arguments: 0 +Number of locals: 1 +Stack size: 3 +Flags: OPTIMIZED, NEWLOCALS +Constants: + 0: None + 1: 1 + 2: ('a',) +Names: + 0: super + 1: f1 +Variable names: + 0: self +Free variables: + 0: __class__""" + self.assertEqual(dedent(dis.code_info(g["C"].f)), expected_dis_info) + + + def test_super_as_local_1(self): + src = """ + class C: + def f(self, super): + super().f1(a=1) + """ + expected = """\ + 4 0 LOAD_FAST 1 (super) + 2 CALL_FUNCTION 0 + 4 LOAD_ATTR 0 (f1) + 6 LOAD_CONST 1 (1) + 8 LOAD_CONST 2 (('a',)) + 10 CALL_FUNCTION_KW 1 + 12 POP_TOP + 14 LOAD_CONST 0 (None) + 16 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + expected_dis_info = """\ +Name: f +Filename: +Argument count: 2 +Positional-only arguments: 0 +Kw-only arguments: 0 +Number of locals: 2 +Stack size: 3 +Flags: OPTIMIZED, NEWLOCALS +Constants: + 0: None + 1: 1 + 2: ('a',) +Names: + 0: f1 +Variable names: + 0: self + 1: super +Free variables: + 0: __class__""" + self.assertEqual(dedent(dis.code_info(g["C"].f)), expected_dis_info) + + def test_super_as_local_2(self): + src = """ + def f(): + super = lambda: 1 + class C: + def f(self): + super().f1(a=1) + return C + C = f() + """ + expected = """\ + 6 0 LOAD_DEREF 1 (super) + 2 CALL_FUNCTION 0 + 4 LOAD_ATTR 0 (f1) + 6 LOAD_CONST 1 (1) + 8 LOAD_CONST 2 (('a',)) + 10 CALL_FUNCTION_KW 1 + 12 POP_TOP + 14 LOAD_CONST 0 (None) + 16 RETURN_VALUE +""" + g = {} + exec(dedent(src), g) + self.do_disassembly_test(g["C"].f, expected) + class DisWithFileTests(DisTests): # Run the tests again, using the file arg instead of print diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index 22c75bae987219..28526e724e5934 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -928,12 +928,12 @@ def test_wrapper_call(self): cmd = textwrap.dedent(''' class MyList(list): def __init__(self): - super().__init__() # wrapper_call() + super().__init__() # wrapperdescr_call() id("first break point") l = MyList() ''') - cmds_after_breakpoint = ['break wrapper_call', 'continue'] + cmds_after_breakpoint = ['break wrapperdescr_call', 'continue'] if CET_PROTECTION: # bpo-32962: same case as in get_stack_trace(): # we need an additional 'next' command in order to read @@ -945,7 +945,7 @@ def __init__(self): gdb_output = self.get_stack_trace(cmd, cmds_after_breakpoint=cmds_after_breakpoint) self.assertRegex(gdb_output, - r", args=\(type ? su->type->tp_name : "NULL"); } +/* Forward */ +static int +super_init_common(superobject *su, PyTypeObject *type, PyObject *obj); + +static PyTypeObject * +supercheck(PyTypeObject *type, PyObject *obj); + static PyObject * -super_getattro(PyObject *self, PyObject *name) +_do_super_lookup(PyTypeObject *type, + PyObject *obj, + PyTypeObject *starttype, + PyObject *name, + PyObject *super_instance, + int *meth_found) { - superobject *su = (superobject *)self; - PyTypeObject *starttype; PyObject *mro; Py_ssize_t i, n; + PyObject *s = super_instance; - starttype = su->obj_type; if (starttype == NULL) goto skip; @@ -8054,7 +8064,7 @@ super_getattro(PyObject *self, PyObject *name) /* No need to check the last one: it's gonna be skipped anyway. */ for (i = 0; i+1 < n; i++) { - if ((PyObject *)(su->type) == PyTuple_GET_ITEM(mro, i)) + if ((PyObject *)type == PyTuple_GET_ITEM(mro, i)) break; } i++; /* skip su->type (if any) */ @@ -8077,16 +8087,20 @@ super_getattro(PyObject *self, PyObject *name) res = PyDict_GetItemWithError(dict, name); if (res != NULL) { Py_INCREF(res); - - f = Py_TYPE(res)->tp_descr_get; - if (f != NULL) { - tmp = f(res, - /* Only pass 'obj' param if this is instance-mode super - (See SF ID #743627) */ - (su->obj == (PyObject *)starttype) ? NULL : su->obj, - (PyObject *)starttype); - Py_DECREF(res); - res = tmp; + if (meth_found && PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)) { + *meth_found = 1; + } + else { + f = Py_TYPE(res)->tp_descr_get; + if (f != NULL) { + tmp = f(res, + /* Only pass 'obj' param if this is instance-mode super + (See SF ID #743627) */ + (obj == (PyObject *)starttype) ? NULL : obj, + (PyObject *)starttype); + Py_DECREF(res); + res = tmp; + } } Py_DECREF(mro); @@ -8102,7 +8116,43 @@ super_getattro(PyObject *self, PyObject *name) Py_DECREF(mro); skip: - return PyObject_GenericGetAttr(self, name); + if (s == NULL) { + // create new instance of PySuper_Type to be used for PyObject_GenericGetAttr + s = PySuper_Type.tp_new(&PySuper_Type, NULL, NULL); + if (s == NULL) { + return NULL; + } + + if (super_init_common((superobject *)s, type, obj) < 0) { + Py_DECREF(s); + return NULL; + } + } + + PyObject *result = PyObject_GenericGetAttr(s, name); + if (s != super_instance) { + Py_DECREF(s); + } + return result; +} + +static PyObject * +super_getattro(PyObject *self, PyObject *name) +{ + superobject *su = (superobject *)self; + return _do_super_lookup(su->type, su->obj, su->obj_type, name, (PyObject *)su, NULL); +} + +PyObject * +_PySuper_Lookup(PyTypeObject *type, PyObject *obj, PyObject *name, PyObject *super_instance, int *meth_found) +{ + PyTypeObject *starttype = supercheck(type, obj); + if (starttype == NULL) { + return NULL; + } + PyObject *res = _do_super_lookup(type, obj, starttype, name, super_instance, meth_found); + Py_DECREF(starttype); + return res; } static PyTypeObject * @@ -8271,18 +8321,9 @@ super_init_without_args(PyFrameObject *f, PyCodeObject *co, } static int -super_init(PyObject *self, PyObject *args, PyObject *kwds) +super_init_common(superobject *su, PyTypeObject *type, PyObject *obj) { - superobject *su = (superobject *)self; - PyTypeObject *type = NULL; - PyObject *obj = NULL; PyTypeObject *obj_type = NULL; - - if (!_PyArg_NoKeywords("super", kwds)) - return -1; - if (!PyArg_ParseTuple(args, "|O!O:super", &PyType_Type, &type, &obj)) - return -1; - if (type == NULL) { /* Call super(), without args -- fill in from __class__ and first local variable on the stack. */ @@ -8319,6 +8360,20 @@ super_init(PyObject *self, PyObject *args, PyObject *kwds) return 0; } +static int +super_init(PyObject *self, PyObject *args, PyObject *kwds) +{ + PyTypeObject *type = NULL; + PyObject *obj = NULL; + + if (!_PyArg_NoKeywords("super", kwds)) + return -1; + if (!PyArg_ParseTuple(args, "|O!O:super", &PyType_Type, &type, &obj)) + return -1; + + return super_init_common((superobject *)self, type, obj); +} + PyDoc_STRVAR(super_doc, "super() -> same as super(__class__, )\n" "super(type) -> unbound super object\n" diff --git a/Python/ceval.c b/Python/ceval.c index 3a37017c000d4a..ad8711cb1e1401 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1231,6 +1231,41 @@ eval_frame_handle_pending(PyThreadState *tstate) return 0; } +static inline PyObject * +_PySuperLookupMethodOrAttr(PyThreadState *tstate, + PyObject *global_super, + PyTypeObject *type, + PyObject *self, + PyObject *name, + int call_no_args, + int *meth_found) +{ + if (global_super == (PyObject *)&PySuper_Type) { + return _PySuper_Lookup(type, self, name, NULL, meth_found); + } + + PyObject *super_instance; + if (call_no_args) { + super_instance = _PyObject_VectorcallTstate(tstate, global_super, NULL, 0, NULL); + } + else { + PyObject *args[] = { (PyObject *)type, self }; + super_instance = _PyObject_VectorcallTstate(tstate, global_super, args, 2, NULL); + } + if (super_instance == NULL) { + return NULL; + } + PyObject *result = PyObject_GetAttr(super_instance, name); + Py_DECREF(super_instance); + if (result == NULL) { + return NULL; + } + if (meth_found) { + *meth_found = 0; + } + return result; +} + PyObject* _Py_HOT_FUNCTION _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag) { @@ -4214,6 +4249,68 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag) DISPATCH(); } + case TARGET(LOAD_METHOD_SUPER): { + PyObject *pair = GETITEM(consts, oparg); + PyObject *name_obj = PyTuple_GET_ITEM(pair, 0); + int name_idx = _PyLong_AsInt(name_obj); + PyObject *name = GETITEM(names, name_idx); + + assert (PyBool_Check(PyTuple_GET_ITEM(pair, 1))); + int call_no_args = PyTuple_GET_ITEM(pair, 1) == Py_True; + + PyObject *self = POP(); + PyObject *type = POP(); + PyObject *global_super = POP(); + + int meth_found = 0; + PyObject *attr = _PySuperLookupMethodOrAttr( + tstate, global_super, (PyTypeObject *)type, self, name, call_no_args, &meth_found); + Py_DECREF(type); + Py_DECREF(global_super); + + if (attr == NULL) { + Py_DECREF(self); + goto error; + } + if (meth_found) { + PUSH(attr); + PUSH(self); + } + else { + Py_DECREF(self); + + PUSH(NULL); + PUSH(attr); + } + DISPATCH(); + } + + case TARGET(LOAD_ATTR_SUPER): { + PyObject *pair = GETITEM(consts, oparg); + PyObject *name_obj = PyTuple_GET_ITEM(pair, 0); + int name_idx = _PyLong_AsInt(name_obj); + PyObject *name = GETITEM(names, name_idx); + + assert (PyBool_Check(PyTuple_GET_ITEM(pair, 1))); + + int call_no_args = PyTuple_GET_ITEM(pair, 1) == Py_True; + + PyObject *self = POP(); + PyObject *type = POP(); + PyObject *global_super = POP(); + PyObject *attr = _PySuperLookupMethodOrAttr( + tstate, global_super, (PyTypeObject *)type, self, name, call_no_args, NULL); + Py_DECREF(type); + Py_DECREF(self); + Py_DECREF(global_super); + + if (attr == NULL) { + goto error; + } + PUSH(attr); + DISPATCH(); + } + case TARGET(CALL_METHOD): { /* Designed to work in tamdem with LOAD_METHOD. */ PyObject **sp, *res, *meth; diff --git a/Python/compile.c b/Python/compile.c index 27274ec884dc3f..4ab62ebd60a5ec 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -1169,6 +1169,10 @@ stack_effect(int opcode, int oparg, int jump) return 1; case MATCH_KEYS: return 2; + case LOAD_METHOD_SUPER: + return -1; + case LOAD_ATTR_SUPER: + return -2; default: return PY_INVALID_STACK_EFFECT; } @@ -4125,10 +4129,144 @@ check_index(struct compiler *c, expr_ty e, expr_ty s) } } +// Return 1 if the expression is super call, -1 if not, and 0 on error. +static int +is_super_call(struct compiler *c, expr_ty e) +{ + _Py_IDENTIFIER(__class__); + _Py_IDENTIFIER(super); + + if (e->kind != Call_kind || + e->v.Call.func->kind != Name_kind || + !_PyUnicode_EqualToASCIIString(e->v.Call.func->v.Name.id, "super") || + asdl_seq_LEN(e->v.Call.keywords) != 0) { + return -1; + } + + PyObject *super_name = _PyUnicode_FromId(&PyId_super); + if (super_name == NULL) { + return 0; + } + // try to find "super" symbol being defined in file + int scope = _PyST_GetScope(c->u->u_ste, super_name); + // any scoping besides GLOBAL_IMPLICIT is not accepted + if (scope != GLOBAL_IMPLICIT) { + return -1; + } + // ensure it is not defined in top level scope + scope = _PyST_GetScope(c->c_st->st_top, super_name); + if (scope != 0 && scope != GLOBAL_IMPLICIT) { + return -1; + } + + if (asdl_seq_LEN(e->v.Call.args) == 2) { + // super(type, self) + return 1; + } + if (asdl_seq_LEN(e->v.Call.args) == 0) { + // super() case + // enclosing function should have at least one argument + if (c->u->u_argcount == 0 && c->u->u_posonlyargcount == 0) { + return -1; + } + // freevars should include __class__ + PyObject *name = _PyUnicode_FromId(&PyId___class__); + if (name == NULL) { + return 0; + } + return get_ref_type(c, name) == FREE ? 1 : -1; + } + return -1; +} + +static int +load_class_and_self_for_super(struct compiler *c) +{ + _Py_IDENTIFIER(__class__); + PyObject *name = _PyUnicode_FromId(&PyId___class__); + if (name == NULL) { + return 0; + } + // load __class__ freevar + int reftype = get_ref_type(c, name); + assert (get_ref_type(c, name) == FREE); + int arg = compiler_lookup_arg(c->u->u_freevars, name); + if (arg == -1) { + fprintf(stderr, + "lookup %s in %s %d %d\n" + "freevars of %s: %s\n", + PyUnicode_AsUTF8(PyObject_Repr(name)), + PyUnicode_AsUTF8(c->u->u_name), + reftype, arg, + PyUnicode_AsUTF8(c->u->u_name), + PyUnicode_AsUTF8(PyObject_Repr(c->u->u_freevars))); + Py_FatalError("load_class_and_self_for_super()"); + } + ADDOP_I(c, LOAD_DEREF, arg); + + // load first argument + // 1. find name of the first argument + Py_ssize_t i = 0; + PyObject *key, *value; + if (!PyDict_Next(c->u->u_varnames, &i, &key, &value)) { + return 0; + } + // 2. check if name is in cellvars + PyObject *cell_idx = PyDict_GetItem(c->u->u_cellvars, key); + if (cell_idx != NULL) { + assert(PyLong_Check(cell_idx)); + // argument is also cell use LOAD_DEREF + ADDOP_I(c, LOAD_DEREF, _PyLong_AsInt(cell_idx)); + } + else { + assert(PyLong_Check(value)); + // normal argument - use LOAD_FAST + ADDOP_I(c, LOAD_FAST, _PyLong_AsInt(value)); + } + + return 1; +} + +static Py_ssize_t +make_args_for_super_opcode(struct compiler *c, PyObject *name, int super_nargs) +{ + PyObject *pair = PyTuple_New(2); + if (pair == NULL) { + return -1; + } + PyObject *mangled = _Py_Mangle(c->u->u_private, name); + if (mangled == NULL) { + Py_DECREF(pair); + return -1; + } + int name_idx = compiler_add_o(c->u->u_names, mangled); + Py_DECREF(mangled); + if (name_idx == -1) { + Py_DECREF(pair); + return -1; + } + PyObject *name_id_obj = PyLong_FromLong(name_idx); + if (name_id_obj == NULL) { + Py_DECREF(pair); + return -1; + } + PyTuple_SET_ITEM(pair, 0, name_id_obj); // steals ref + + PyObject *call_no_args = super_nargs == 0 ? Py_True : Py_False; + Py_INCREF(call_no_args); + PyTuple_SET_ITEM(pair, 1, call_no_args); + + Py_ssize_t idx = compiler_add_const(c, pair); + Py_DECREF(pair); + return idx; +} + // Return 1 if the method call was optimized, -1 if not, and 0 on error. static int maybe_optimize_method_call(struct compiler *c, expr_ty e) { + _Py_IDENTIFIER(super); + Py_ssize_t argsl, i; expr_ty meth = e->v.Call.func; asdl_expr_seq *args = e->v.Call.args; @@ -4139,6 +4277,10 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) asdl_seq_LEN(e->v.Call.keywords)) return -1; + int super_call = is_super_call(c, meth->v.Attribute.value); + if (!super_call) { + return 0; + } /* Check that there are no *varargs types of arguments. */ argsl = asdl_seq_LEN(args); for (i = 0; i < argsl; i++) { @@ -4147,6 +4289,32 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) return -1; } } + if (super_call == 1) { + // emit LOAD_GLOBAL for 'super' + PyObject *super_name = _PyUnicode_FromId(&PyId_super); + if (super_name == NULL) { + return 0; + } + ADDOP_O(c, LOAD_GLOBAL, super_name, names); + int nargs = asdl_seq_LEN(meth->v.Attribute.value->v.Call.args); + if (nargs == 0) { + if (!load_class_and_self_for_super(c)) { + return 0; + } + } + else { + // load args to super call + VISIT_SEQ(c, expr, meth->v.Attribute.value->v.Call.args); + } + Py_ssize_t idx = make_args_for_super_opcode(c, meth->v.Attribute.attr, nargs); + if (idx < 0) { + return 0; + } + ADDOP_I(c, LOAD_METHOD_SUPER, idx); + VISIT_SEQ(c, expr, e->v.Call.args); + ADDOP_I(c, CALL_METHOD, asdl_seq_LEN(e->v.Call.args)); + return 1; + } /* Alright, we can optimize the code. */ VISIT(c, expr, meth->v.Attribute.value); @@ -5032,6 +5200,8 @@ compiler_with(struct compiler *c, stmt_ty s, int pos) static int compiler_visit_expr1(struct compiler *c, expr_ty e) { + _Py_IDENTIFIER(super); + switch (e->kind) { case NamedExpr_kind: VISIT(c, expr, e->v.NamedExpr.value); @@ -5118,6 +5288,41 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) return compiler_formatted_value(c, e); /* The following exprs can be assignment targets. */ case Attribute_kind: + if (e->v.Attribute.ctx == Load) { + int super_call = is_super_call(c, e->v.Attribute.value); + if (!super_call) { + return 0; + } + if (super_call == 1) { + PyObject *super_name = _PyUnicode_FromId(&PyId_super); + if (super_name == NULL) { + return 0; + } + ADDOP_O(c, LOAD_GLOBAL, super_name, names); + int nargs = asdl_seq_LEN(e->v.Attribute.value->v.Call.args); + if (nargs == 0) { + if (!load_class_and_self_for_super(c)) { + return 0; + } + } + else { + // load args to super call + VISIT_SEQ(c, expr, e->v.Attribute.value->v.Call.args); + } + Py_ssize_t idx = make_args_for_super_opcode(c, + e->v.Attribute.attr, + nargs); + if (idx < 0) { + return 0; + } + int old_lineno = c->u->u_lineno; + c->u->u_lineno = e->end_lineno; + ADDOP_I(c, LOAD_ATTR_SUPER, idx); + c->u->u_lineno = old_lineno; + return 1; + } + } + // fallthrough case - non-LOAD_ATTR_SUPER case VISIT(c, expr, e->v.Attribute.value); switch (e->v.Attribute.ctx) { case Load: diff --git a/Python/importlib_external.h b/Python/importlib_external.h index f9045892885f2b..a7d6fa515c3e47 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -315,7 +315,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,115,38,0,0,0,16,5,6,1,22,1,4,255, 2,2,14,3,24,1,16,128,18,1,12,1,2,1,12,1, 2,3,12,254,2,1,2,1,2,254,2,253,255,128,114,84, - 0,0,0,105,106,13,0,0,114,45,0,0,0,114,33,0, + 0,0,0,105,107,13,0,0,114,45,0,0,0,114,33,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,119,122,4,46,112,121,99,41,1,218, @@ -429,7 +429,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 90,15,97,108,109,111,115,116,95,102,105,108,101,110,97,109, 101,218,8,102,105,108,101,110,97,109,101,114,7,0,0,0, 114,7,0,0,0,114,8,0,0,0,218,17,99,97,99,104, - 101,95,102,114,111,109,95,115,111,117,114,99,101,86,1,0, + 101,95,102,114,111,109,95,115,111,117,114,99,101,87,1,0, 0,115,74,0,0,0,8,18,6,1,2,1,4,255,8,2, 4,1,8,1,12,1,10,1,12,1,16,1,8,1,8,1, 8,1,24,1,8,1,12,1,6,1,8,2,8,1,8,1, @@ -510,7 +510,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,90,9,111,112,116,95,108,101,118,101,108,90,13,98, 97,115,101,95,102,105,108,101,110,97,109,101,114,7,0,0, 0,114,7,0,0,0,114,8,0,0,0,218,17,115,111,117, - 114,99,101,95,102,114,111,109,95,99,97,99,104,101,157,1, + 114,99,101,95,102,114,111,109,95,99,97,99,104,101,158,1, 0,0,115,62,0,0,0,12,9,8,1,10,1,12,1,4, 1,10,1,12,1,14,1,16,1,4,1,4,1,12,1,8, 1,8,1,2,1,8,255,10,2,8,1,14,1,10,1,16, @@ -546,7 +546,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,101, 95,112,97,116,104,114,7,0,0,0,114,7,0,0,0,114, 8,0,0,0,218,15,95,103,101,116,95,115,111,117,114,99, - 101,102,105,108,101,197,1,0,0,115,24,0,0,0,12,7, + 101,102,105,108,101,198,1,0,0,115,24,0,0,0,12,7, 4,1,16,1,24,1,4,1,2,1,12,1,16,1,14,1, 16,1,2,254,255,128,114,120,0,0,0,99,1,0,0,0, 0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0, @@ -559,7 +559,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 112,108,101,114,113,0,0,0,114,109,0,0,0,114,95,0, 0,0,114,101,0,0,0,41,1,114,108,0,0,0,114,7, 0,0,0,114,7,0,0,0,114,8,0,0,0,218,11,95, - 103,101,116,95,99,97,99,104,101,100,216,1,0,0,115,20, + 103,101,116,95,99,97,99,104,101,100,217,1,0,0,115,20, 0,0,0,14,1,2,1,10,1,12,1,6,1,14,1,4, 1,4,2,2,251,255,128,114,124,0,0,0,99,1,0,0, 0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,0, @@ -574,7 +574,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,114,65,0,0,0,114,64,0,0,0,41,2,114, 58,0,0,0,114,66,0,0,0,114,7,0,0,0,114,7, 0,0,0,114,8,0,0,0,218,10,95,99,97,108,99,95, - 109,111,100,101,228,1,0,0,115,16,0,0,0,2,2,14, + 109,111,100,101,229,1,0,0,115,16,0,0,0,2,2,14, 1,12,1,6,1,8,3,4,1,2,251,255,128,114,126,0, 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, 0,0,0,4,0,0,0,3,0,0,0,115,52,0,0,0, @@ -611,7 +611,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 108,102,114,128,0,0,0,218,4,97,114,103,115,218,6,107, 119,97,114,103,115,169,1,218,6,109,101,116,104,111,100,114, 7,0,0,0,114,8,0,0,0,218,19,95,99,104,101,99, - 107,95,110,97,109,101,95,119,114,97,112,112,101,114,248,1, + 107,95,110,97,109,101,95,119,114,97,112,112,101,114,249,1, 0,0,115,20,0,0,0,8,1,8,1,10,1,4,1,8, 1,2,255,2,1,6,255,24,2,255,128,122,40,95,99,104, 101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,115, @@ -630,14 +630,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 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,82,0,0,0,114,7,0, 0,0,114,7,0,0,0,114,8,0,0,0,218,5,95,119, - 114,97,112,5,2,0,0,115,12,0,0,0,8,1,10,1, + 114,97,112,6,2,0,0,115,12,0,0,0,8,1,10,1, 18,1,2,128,18,1,255,128,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,1,78,41,2,218,10,95,98,111,111,116, 115,116,114,97,112,114,145,0,0,0,41,3,114,134,0,0, 0,114,135,0,0,0,114,145,0,0,0,114,7,0,0,0, 114,133,0,0,0,114,8,0,0,0,218,11,95,99,104,101, - 99,107,95,110,97,109,101,240,1,0,0,115,14,0,0,0, + 99,107,95,110,97,109,101,241,1,0,0,115,14,0,0,0, 14,8,8,10,8,1,8,2,10,6,4,1,255,128,114,147, 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, 5,0,0,0,6,0,0,0,67,0,0,0,115,60,0,0, @@ -665,7 +665,7 @@ const unsigned char _Py_M__importlib_bootstrap_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,7,0,0,0,114, 7,0,0,0,114,8,0,0,0,218,17,95,102,105,110,100, - 95,109,111,100,117,108,101,95,115,104,105,109,15,2,0,0, + 95,109,111,100,117,108,101,95,115,104,105,109,16,2,0,0, 115,12,0,0,0,14,10,16,1,4,1,22,1,4,1,255, 128,114,154,0,0,0,99,3,0,0,0,0,0,0,0,0, 0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,115, @@ -733,7 +733,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 115,90,5,109,97,103,105,99,114,105,0,0,0,114,17,0, 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, 0,218,13,95,99,108,97,115,115,105,102,121,95,112,121,99, - 32,2,0,0,115,30,0,0,0,12,16,8,1,16,1,12, + 33,2,0,0,115,30,0,0,0,12,16,8,1,16,1,12, 1,16,1,12,1,10,1,12,1,8,1,16,1,8,2,16, 1,16,1,4,1,255,128,114,163,0,0,0,99,5,0,0, 0,0,0,0,0,0,0,0,0,6,0,0,0,4,0,0, @@ -788,7 +788,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,114,162,0,0,0,114,105,0,0,0,114,7,0, 0,0,114,7,0,0,0,114,8,0,0,0,218,23,95,118, 97,108,105,100,97,116,101,95,116,105,109,101,115,116,97,109, - 112,95,112,121,99,65,2,0,0,115,20,0,0,0,24,19, + 112,95,112,121,99,66,2,0,0,115,20,0,0,0,24,19, 10,1,12,1,16,1,8,1,22,1,2,255,22,2,8,254, 255,128,114,167,0,0,0,99,4,0,0,0,0,0,0,0, 0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,0, @@ -834,7 +834,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,218,11,115,111,117,114,99,101,95,104,97,115,104,114, 128,0,0,0,114,162,0,0,0,114,7,0,0,0,114,7, 0,0,0,114,8,0,0,0,218,18,95,118,97,108,105,100, - 97,116,101,95,104,97,115,104,95,112,121,99,93,2,0,0, + 97,116,101,95,104,97,115,104,95,112,121,99,94,2,0,0, 115,16,0,0,0,16,17,2,1,8,1,4,255,2,2,6, 254,4,255,255,128,114,169,0,0,0,99,4,0,0,0,0, 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67, @@ -858,7 +858,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 114,42,0,0,0,114,128,0,0,0,114,118,0,0,0,114, 119,0,0,0,218,4,99,111,100,101,114,7,0,0,0,114, 7,0,0,0,114,8,0,0,0,218,17,95,99,111,109,112, - 105,108,101,95,98,121,116,101,99,111,100,101,117,2,0,0, + 105,108,101,95,98,121,116,101,99,111,100,101,118,2,0,0, 115,20,0,0,0,10,2,10,1,12,1,8,1,12,1,4, 1,10,2,4,1,6,255,255,128,114,176,0,0,0,99,3, 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5, @@ -877,7 +877,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 114,166,0,0,0,114,42,0,0,0,114,7,0,0,0,114, 7,0,0,0,114,8,0,0,0,218,22,95,99,111,100,101, 95,116,111,95,116,105,109,101,115,116,97,109,112,95,112,121, - 99,130,2,0,0,115,14,0,0,0,8,2,14,1,14,1, + 99,131,2,0,0,115,14,0,0,0,8,2,14,1,14,1, 14,1,16,1,4,1,255,128,114,181,0,0,0,84,99,3, 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,5, 0,0,0,67,0,0,0,115,80,0,0,0,116,0,116,1, @@ -895,7 +895,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,90,7,99,104,101,99,107,101,100,114,42,0,0,0, 114,17,0,0,0,114,7,0,0,0,114,7,0,0,0,114, 8,0,0,0,218,17,95,99,111,100,101,95,116,111,95,104, - 97,115,104,95,112,121,99,140,2,0,0,115,16,0,0,0, + 97,115,104,95,112,121,99,141,2,0,0,115,16,0,0,0, 8,2,12,1,14,1,16,1,10,1,16,1,4,1,255,128, 114,182,0,0,0,99,1,0,0,0,0,0,0,0,0,0, 0,0,5,0,0,0,6,0,0,0,67,0,0,0,115,62, @@ -923,7 +923,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 105,110,103,90,15,110,101,119,108,105,110,101,95,100,101,99, 111,100,101,114,114,7,0,0,0,114,7,0,0,0,114,8, 0,0,0,218,13,100,101,99,111,100,101,95,115,111,117,114, - 99,101,151,2,0,0,115,12,0,0,0,8,5,12,1,10, + 99,101,152,2,0,0,115,12,0,0,0,8,5,12,1,10, 1,12,1,20,1,255,128,114,187,0,0,0,169,2,114,151, 0,0,0,218,26,115,117,98,109,111,100,117,108,101,95,115, 101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,99, @@ -984,7 +984,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 8,115,117,102,102,105,120,101,115,114,193,0,0,0,90,7, 100,105,114,110,97,109,101,114,7,0,0,0,114,7,0,0, 0,114,8,0,0,0,218,23,115,112,101,99,95,102,114,111, - 109,95,102,105,108,101,95,108,111,99,97,116,105,111,110,168, + 109,95,102,105,108,101,95,108,111,99,97,116,105,111,110,169, 2,0,0,115,74,0,0,0,8,12,4,4,10,1,2,2, 14,1,14,1,4,1,2,251,10,7,16,8,6,1,8,3, 14,1,14,1,10,1,6,1,4,1,2,253,4,5,8,3, @@ -1023,7 +1023,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 72,75,69,89,95,76,79,67,65,76,95,77,65,67,72,73, 78,69,114,20,0,0,0,114,7,0,0,0,114,7,0,0, 0,114,8,0,0,0,218,14,95,111,112,101,110,95,114,101, - 103,105,115,116,114,121,248,2,0,0,115,12,0,0,0,2, + 103,105,115,116,114,121,249,2,0,0,115,12,0,0,0,2, 2,16,1,12,1,18,1,2,255,255,128,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, @@ -1050,7 +1050,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 116,114,121,95,107,101,121,114,21,0,0,0,90,4,104,107, 101,121,218,8,102,105,108,101,112,97,116,104,114,7,0,0, 0,114,7,0,0,0,114,8,0,0,0,218,16,95,115,101, - 97,114,99,104,95,114,101,103,105,115,116,114,121,255,2,0, + 97,114,99,104,95,114,101,103,105,115,116,114,121,0,3,0, 0,115,30,0,0,0,6,2,8,1,6,2,6,1,16,1, 6,255,2,2,12,1,26,1,18,128,4,3,12,254,6,1, 2,255,255,128,122,38,87,105,110,100,111,119,115,82,101,103, @@ -1073,7 +1073,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,218,6,116,97,114,103,101,116,114,210,0,0,0, 114,151,0,0,0,114,200,0,0,0,114,198,0,0,0,114, 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,9, - 102,105,110,100,95,115,112,101,99,14,3,0,0,115,36,0, + 102,105,110,100,95,115,112,101,99,15,3,0,0,115,36,0, 0,0,10,2,8,1,4,1,2,1,12,1,12,1,6,1, 14,1,14,1,6,1,8,1,2,1,6,254,8,3,2,252, 4,255,2,254,255,128,122,31,87,105,110,100,111,119,115,82, @@ -1093,7 +1093,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 169,4,114,209,0,0,0,114,150,0,0,0,114,58,0,0, 0,114,198,0,0,0,114,7,0,0,0,114,7,0,0,0, 114,8,0,0,0,218,11,102,105,110,100,95,109,111,100,117, - 108,101,30,3,0,0,115,10,0,0,0,12,7,8,1,6, + 108,101,31,3,0,0,115,10,0,0,0,12,7,8,1,6, 1,4,2,255,128,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,101,41,2,78,78,41,1,78,41, @@ -1105,7 +1105,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 104,111,100,114,204,0,0,0,218,11,99,108,97,115,115,109, 101,116,104,111,100,114,211,0,0,0,114,214,0,0,0,114, 217,0,0,0,114,7,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,202,0,0,0,236,2,0, + 0,0,0,114,8,0,0,0,114,202,0,0,0,237,2,0, 0,115,32,0,0,0,8,0,4,2,2,3,2,255,2,4, 2,255,12,3,2,2,10,1,2,6,10,1,2,14,12,1, 2,15,16,1,255,128,114,202,0,0,0,99,0,0,0,0, @@ -1142,7 +1142,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 108,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,7, 0,0,0,114,7,0,0,0,114,8,0,0,0,114,193,0, - 0,0,49,3,0,0,115,10,0,0,0,18,3,16,1,14, + 0,0,50,3,0,0,115,10,0,0,0,18,3,16,1,14, 1,16,1,255,128,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,0,0,0,0,2,0,0,0, @@ -1152,7 +1152,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 101,32,99,114,101,97,116,105,111,110,46,78,114,7,0,0, 0,169,2,114,130,0,0,0,114,198,0,0,0,114,7,0, 0,0,114,7,0,0,0,114,8,0,0,0,218,13,99,114, - 101,97,116,101,95,109,111,100,117,108,101,57,3,0,0,243, + 101,97,116,101,95,109,111,100,117,108,101,58,3,0,0,243, 4,0,0,0,4,0,255,128,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,0,0, @@ -1172,7 +1172,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 111,118,101,100,218,4,101,120,101,99,114,143,0,0,0,41, 3,114,130,0,0,0,218,6,109,111,100,117,108,101,114,175, 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,11,101,120,101,99,95,109,111,100,117,108,101,60, + 0,0,218,11,101,120,101,99,95,109,111,100,117,108,101,61, 3,0,0,115,14,0,0,0,12,2,8,1,4,1,8,1, 4,255,20,2,255,128,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, @@ -1184,14 +1184,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,218,17,95,108,111,97,100,95,109,111,100,117,108,101,95, 115,104,105,109,169,2,114,130,0,0,0,114,150,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 11,108,111,97,100,95,109,111,100,117,108,101,68,3,0,0, + 11,108,111,97,100,95,109,111,100,117,108,101,69,3,0,0, 115,4,0,0,0,12,3,255,128,122,25,95,76,111,97,100, 101,114,66,97,115,105,99,115,46,108,111,97,100,95,109,111, 100,117,108,101,78,41,8,114,137,0,0,0,114,136,0,0, 0,114,138,0,0,0,114,139,0,0,0,114,193,0,0,0, 114,226,0,0,0,114,232,0,0,0,114,235,0,0,0,114, 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,222,0,0,0,44,3,0,0,115,14,0,0, + 0,0,0,114,222,0,0,0,45,3,0,0,115,14,0,0, 0,8,0,4,2,8,3,8,8,8,3,12,8,255,128,114, 222,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,3,0,0,0,64,0,0,0,115,74,0, @@ -1216,7 +1216,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 32,32,32,32,32,32,32,78,41,1,114,64,0,0,0,169, 2,114,130,0,0,0,114,58,0,0,0,114,7,0,0,0, 114,7,0,0,0,114,8,0,0,0,218,10,112,97,116,104, - 95,109,116,105,109,101,76,3,0,0,115,4,0,0,0,4, + 95,109,116,105,109,101,77,3,0,0,115,4,0,0,0,4, 6,255,128,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,0,0,0,0,2,0,0,0,4,0,0, @@ -1250,7 +1250,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 108,101,100,46,10,32,32,32,32,32,32,32,32,114,180,0, 0,0,78,41,1,114,238,0,0,0,114,237,0,0,0,114, 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,10, - 112,97,116,104,95,115,116,97,116,115,84,3,0,0,115,4, + 112,97,116,104,95,115,116,97,116,115,85,3,0,0,115,4, 0,0,0,14,12,255,128,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,0,0,0,0,4,0,0, @@ -1274,7 +1274,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 4,114,130,0,0,0,114,119,0,0,0,90,10,99,97,99, 104,101,95,112,97,116,104,114,42,0,0,0,114,7,0,0, 0,114,7,0,0,0,114,8,0,0,0,218,15,95,99,97, - 99,104,101,95,98,121,116,101,99,111,100,101,98,3,0,0, + 99,104,101,95,98,121,116,101,99,111,100,101,99,3,0,0, 115,4,0,0,0,12,8,255,128,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, @@ -1291,7 +1291,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 102,105,108,101,115,46,10,32,32,32,32,32,32,32,32,78, 114,7,0,0,0,41,3,114,130,0,0,0,114,58,0,0, 0,114,42,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,240,0,0,0,108,3,0,0,114,227, + 114,8,0,0,0,114,240,0,0,0,109,3,0,0,114,227, 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,0,0,0,0,5,0,0,0,10,0,0,0,67, @@ -1311,7 +1311,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 114,187,0,0,0,41,5,114,130,0,0,0,114,150,0,0, 0,114,58,0,0,0,114,185,0,0,0,218,3,101,120,99, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 10,103,101,116,95,115,111,117,114,99,101,115,3,0,0,115, + 10,103,101,116,95,115,111,117,114,99,101,116,3,0,0,115, 26,0,0,0,10,2,2,1,12,1,8,4,14,253,4,1, 2,1,4,255,2,1,2,255,8,128,2,255,255,128,122,23, 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116, @@ -1334,7 +1334,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 112,105,108,101,41,4,114,130,0,0,0,114,42,0,0,0, 114,58,0,0,0,114,245,0,0,0,114,7,0,0,0,114, 7,0,0,0,114,8,0,0,0,218,14,115,111,117,114,99, - 101,95,116,111,95,99,111,100,101,125,3,0,0,115,8,0, + 101,95,116,111,95,99,111,100,101,126,3,0,0,115,8,0, 0,0,12,5,4,1,6,255,255,128,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, @@ -1412,7 +1412,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,114,17,0,0,0,90,10,98,121,116,101,115,95,100,97, 116,97,90,11,99,111,100,101,95,111,98,106,101,99,116,114, 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,228, - 0,0,0,133,3,0,0,115,170,0,0,0,10,7,4,1, + 0,0,0,134,3,0,0,115,170,0,0,0,10,7,4,1, 4,1,4,1,4,1,4,1,2,1,12,1,14,1,10,1, 2,2,14,1,14,1,6,1,12,2,2,1,14,1,14,1, 4,1,2,3,2,1,6,254,2,4,12,1,16,1,12,1, @@ -1429,7 +1429,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 238,0,0,0,114,239,0,0,0,114,241,0,0,0,114,240, 0,0,0,114,244,0,0,0,114,248,0,0,0,114,228,0, 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,236,0,0,0,74,3,0,0,115, + 0,114,8,0,0,0,114,236,0,0,0,75,3,0,0,115, 18,0,0,0,8,0,8,2,8,8,8,14,8,10,8,7, 14,10,12,8,255,128,114,236,0,0,0,99,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, @@ -1457,7 +1457,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 32,32,102,105,110,100,101,114,46,78,114,170,0,0,0,41, 3,114,130,0,0,0,114,150,0,0,0,114,58,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 223,0,0,0,223,3,0,0,115,6,0,0,0,6,3,10, + 223,0,0,0,224,3,0,0,115,6,0,0,0,6,3,10, 1,255,128,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,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0, @@ -1466,7 +1466,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,169,2,218,9,95,95,99,108,97,115,115,95,95, 114,143,0,0,0,169,2,114,130,0,0,0,90,5,111,116, 104,101,114,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,6,95,95,101,113,95,95,229,3,0,0,243,8, + 0,0,218,6,95,95,101,113,95,95,230,3,0,0,243,8, 0,0,0,12,1,10,1,2,255,255,128,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,0,0,0,0,1,0,0,0,3, @@ -1475,1197 +1475,1198 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 114,121,0,0,0,169,3,218,4,104,97,115,104,114,128,0, 0,0,114,58,0,0,0,169,1,114,130,0,0,0,114,7, 0,0,0,114,7,0,0,0,114,8,0,0,0,218,8,95, - 95,104,97,115,104,95,95,233,3,0,0,243,4,0,0,0, + 95,104,97,115,104,95,95,234,3,0,0,243,4,0,0,0, 20,1,255,128,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,0,0,0,0,2,0,0,0,3,0,0,0,3,0, - 0,0,115,16,0,0,0,116,0,116,1,124,0,131,2,160, - 2,124,1,161,1,83,0,41,2,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,78, - 41,3,218,5,115,117,112,101,114,114,254,0,0,0,114,235, - 0,0,0,114,234,0,0,0,169,1,114,1,1,0,0,114, - 7,0,0,0,114,8,0,0,0,114,235,0,0,0,236,3, - 0,0,115,4,0,0,0,16,10,255,128,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,0,0,0,0, - 2,0,0,0,1,0,0,0,67,0,0,0,243,6,0,0, - 0,124,0,106,0,83,0,169,2,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,78,114,62,0,0,0,114,234,0,0,0, + 0,0,115,14,0,0,0,116,0,116,1,124,0,166,1,124, + 1,161,1,83,0,41,3,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,2,114, + 45,0,0,0,70,78,41,3,218,5,115,117,112,101,114,114, + 254,0,0,0,114,235,0,0,0,114,234,0,0,0,169,1, + 114,1,1,0,0,114,7,0,0,0,114,8,0,0,0,114, + 235,0,0,0,237,3,0,0,115,4,0,0,0,14,10,255, + 128,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,0,0,0,0,2,0,0,0,1,0,0,0,67,0, + 0,0,243,6,0,0,0,124,0,106,0,83,0,169,2,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,78,114,62,0,0, + 0,114,234,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,190,0,0,0,249,3,0,0,243,4, + 0,0,0,6,3,255,128,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,0,0,0,0,3,0,0, + 0,8,0,0,0,67,0,0,0,115,128,0,0,0,116,0, + 124,0,116,1,116,2,102,2,131,2,114,72,116,3,160,4, + 116,5,124,1,131,1,161,1,143,24,125,2,124,2,160,6, + 161,0,87,0,2,0,100,1,4,0,4,0,131,3,1,0, + 83,0,49,0,115,58,119,1,1,0,1,0,1,0,89,0, + 1,0,100,1,83,0,116,3,160,7,124,1,100,2,161,2, + 143,24,125,2,124,2,160,6,161,0,87,0,2,0,100,1, + 4,0,4,0,131,3,1,0,83,0,49,0,115,114,119,1, + 1,0,1,0,1,0,89,0,1,0,100,1,83,0,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,78,218,1,114,41,8,114, + 172,0,0,0,114,236,0,0,0,218,19,69,120,116,101,110, + 115,105,111,110,70,105,108,101,76,111,97,100,101,114,114,79, + 0,0,0,90,9,111,112,101,110,95,99,111,100,101,114,97, + 0,0,0,90,4,114,101,97,100,114,80,0,0,0,41,3, + 114,130,0,0,0,114,58,0,0,0,114,83,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,242, + 0,0,0,254,3,0,0,115,16,0,0,0,14,2,16,1, + 22,1,20,128,14,2,22,1,20,128,255,128,122,19,70,105, + 108,101,76,111,97,100,101,114,46,103,101,116,95,100,97,116, + 97,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,2,0,0,0,67,0,0,0,115,20,0,0,0,100, + 1,100,2,108,0,109,1,125,2,1,0,124,2,124,0,131, + 1,83,0,41,3,78,114,0,0,0,0,41,1,218,10,70, + 105,108,101,82,101,97,100,101,114,41,2,218,17,105,109,112, + 111,114,116,108,105,98,46,114,101,97,100,101,114,115,114,18, + 1,0,0,41,3,114,130,0,0,0,114,231,0,0,0,114, + 18,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,99, + 101,95,114,101,97,100,101,114,7,4,0,0,115,6,0,0, + 0,12,2,8,1,255,128,122,30,70,105,108,101,76,111,97, + 100,101,114,46,103,101,116,95,114,101,115,111,117,114,99,101, + 95,114,101,97,100,101,114,41,13,114,137,0,0,0,114,136, + 0,0,0,114,138,0,0,0,114,139,0,0,0,114,223,0, + 0,0,114,3,1,0,0,114,9,1,0,0,114,147,0,0, + 0,114,235,0,0,0,114,190,0,0,0,114,242,0,0,0, + 114,20,1,0,0,90,13,95,95,99,108,97,115,115,99,101, + 108,108,95,95,114,7,0,0,0,114,7,0,0,0,114,12, + 1,0,0,114,8,0,0,0,114,254,0,0,0,219,3,0, + 0,115,26,0,0,0,8,0,4,2,8,3,8,6,8,4, + 2,3,14,1,2,11,10,1,8,4,2,9,18,1,255,128, + 114,254,0,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,46, + 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100, + 2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,100, + 6,100,7,156,1,100,8,100,9,132,2,90,6,100,10,83, + 0,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,0,0, + 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,22, + 0,0,0,116,0,124,1,131,1,125,2,124,2,106,1,124, + 2,106,2,100,1,156,2,83,0,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,41,2, + 114,180,0,0,0,114,249,0,0,0,78,41,3,114,63,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,130,0,0,0,114,58,0,0, + 0,114,253,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,239,0,0,0,17,4,0,0,115,6, + 0,0,0,8,2,14,1,255,128,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,0, + 0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115, + 24,0,0,0,116,0,124,1,131,1,125,4,124,0,106,1, + 124,2,124,3,124,4,100,1,141,3,83,0,41,2,78,169, + 1,218,5,95,109,111,100,101,41,2,114,126,0,0,0,114, + 240,0,0,0,41,5,114,130,0,0,0,114,119,0,0,0, + 114,118,0,0,0,114,42,0,0,0,114,66,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,241, + 0,0,0,22,4,0,0,115,6,0,0,0,8,2,16,1, + 255,128,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,75,0,0,0,114,23,1,0,0,99,3, + 0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,11, + 0,0,0,67,0,0,0,115,254,0,0,0,116,0,124,1, + 131,1,92,2,125,4,125,5,103,0,125,6,124,4,114,62, + 116,1,124,4,131,1,115,62,116,0,124,4,131,1,92,2, + 125,4,125,7,124,6,160,2,124,7,161,1,1,0,124,4, + 114,62,116,1,124,4,131,1,114,28,116,3,124,6,131,1, + 68,0,93,96,125,7,116,4,124,4,124,7,131,2,125,4, + 122,14,116,5,160,6,124,4,161,1,1,0,87,0,113,70, + 4,0,116,7,121,116,1,0,1,0,1,0,89,0,113,70, + 4,0,116,8,121,252,1,0,125,8,1,0,122,30,116,9, + 160,10,100,1,124,4,124,8,161,3,1,0,87,0,89,0, + 100,2,125,8,126,8,1,0,100,2,83,0,100,2,125,8, + 126,8,119,1,122,30,116,11,124,1,124,2,124,3,131,3, + 1,0,116,9,160,10,100,3,124,1,161,2,1,0,87,0, + 100,2,83,0,4,0,116,8,121,250,1,0,125,8,1,0, + 122,28,116,9,160,10,100,1,124,1,124,8,161,3,1,0, + 87,0,89,0,100,2,125,8,126,8,100,2,83,0,100,2, + 125,8,126,8,119,1,119,0,119,0,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,12,114,61,0,0,0,114,71,0,0, + 0,114,197,0,0,0,114,56,0,0,0,114,54,0,0,0, + 114,19,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,64,0, + 0,0,114,146,0,0,0,114,160,0,0,0,114,84,0,0, + 0,41,9,114,130,0,0,0,114,58,0,0,0,114,42,0, + 0,0,114,24,1,0,0,218,6,112,97,114,101,110,116,114, + 108,0,0,0,114,53,0,0,0,114,49,0,0,0,114,243, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,240,0,0,0,27,4,0,0,115,58,0,0,0, + 12,2,4,1,12,2,12,1,10,1,12,254,12,4,10,1, + 2,1,14,1,12,1,4,2,14,1,6,3,4,1,4,255, + 16,2,8,128,2,1,12,1,18,1,14,1,8,2,2,1, + 18,255,8,128,2,254,2,247,255,128,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,137,0,0,0,114,136,0, + 0,0,114,138,0,0,0,114,139,0,0,0,114,239,0,0, + 0,114,241,0,0,0,114,240,0,0,0,114,7,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 190,0,0,0,248,3,0,0,243,4,0,0,0,6,3,255, - 128,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,0,0,0,0,3,0,0,0,8,0,0,0,67, - 0,0,0,115,128,0,0,0,116,0,124,0,116,1,116,2, - 102,2,131,2,114,72,116,3,160,4,116,5,124,1,131,1, - 161,1,143,24,125,2,124,2,160,6,161,0,87,0,2,0, - 100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,58, - 119,1,1,0,1,0,1,0,89,0,1,0,100,1,83,0, - 116,3,160,7,124,1,100,2,161,2,143,24,125,2,124,2, - 160,6,161,0,87,0,2,0,100,1,4,0,4,0,131,3, - 1,0,83,0,49,0,115,114,119,1,1,0,1,0,1,0, - 89,0,1,0,100,1,83,0,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,78,218,1,114,41,8,114,172,0,0,0,114,236, - 0,0,0,218,19,69,120,116,101,110,115,105,111,110,70,105, - 108,101,76,111,97,100,101,114,114,79,0,0,0,90,9,111, - 112,101,110,95,99,111,100,101,114,97,0,0,0,90,4,114, - 101,97,100,114,80,0,0,0,41,3,114,130,0,0,0,114, - 58,0,0,0,114,83,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,242,0,0,0,253,3,0, - 0,115,16,0,0,0,14,2,16,1,22,1,20,128,14,2, - 22,1,20,128,255,128,122,19,70,105,108,101,76,111,97,100, - 101,114,46,103,101,116,95,100,97,116,97,99,2,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0, - 67,0,0,0,115,20,0,0,0,100,1,100,2,108,0,109, - 1,125,2,1,0,124,2,124,0,131,1,83,0,41,3,78, - 114,0,0,0,0,41,1,218,10,70,105,108,101,82,101,97, - 100,101,114,41,2,218,17,105,109,112,111,114,116,108,105,98, - 46,114,101,97,100,101,114,115,114,18,1,0,0,41,3,114, - 130,0,0,0,114,231,0,0,0,114,18,1,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,218,19,103, - 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, - 101,114,6,4,0,0,115,6,0,0,0,12,2,8,1,255, - 128,122,30,70,105,108,101,76,111,97,100,101,114,46,103,101, - 116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,101, - 114,41,13,114,137,0,0,0,114,136,0,0,0,114,138,0, - 0,0,114,139,0,0,0,114,223,0,0,0,114,3,1,0, - 0,114,9,1,0,0,114,147,0,0,0,114,235,0,0,0, - 114,190,0,0,0,114,242,0,0,0,114,20,1,0,0,90, - 13,95,95,99,108,97,115,115,99,101,108,108,95,95,114,7, - 0,0,0,114,7,0,0,0,114,12,1,0,0,114,8,0, - 0,0,114,254,0,0,0,218,3,0,0,115,26,0,0,0, - 8,0,4,2,8,3,8,6,8,4,2,3,14,1,2,11, - 10,1,8,4,2,9,18,1,255,128,114,254,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,64,0,0,0,115,46,0,0,0,101,0,90, - 1,100,0,90,2,100,1,90,3,100,2,100,3,132,0,90, - 4,100,4,100,5,132,0,90,5,100,6,100,7,156,1,100, - 8,100,9,132,2,90,6,100,10,83,0,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,0,0,0,0,3,0,0,0, - 3,0,0,0,67,0,0,0,115,22,0,0,0,116,0,124, - 1,131,1,125,2,124,2,106,1,124,2,106,2,100,1,156, - 2,83,0,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,41,2,114,180,0,0,0,114, - 249,0,0,0,78,41,3,114,63,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,130,0,0,0,114,58,0,0,0,114,253,0,0,0, + 21,1,0,0,13,4,0,0,115,12,0,0,0,8,0,4, + 2,8,2,8,5,18,5,255,128,114,21,1,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,64,0,0,0,115,32,0,0,0,101,0,90,1, + 100,0,90,2,100,1,90,3,100,2,100,3,132,0,90,4, + 100,4,100,5,132,0,90,5,100,6,83,0,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,0,0,0,0, + 5,0,0,0,5,0,0,0,67,0,0,0,115,68,0,0, + 0,124,0,160,0,124,1,161,1,125,2,124,0,160,1,124, + 2,161,1,125,3,124,1,124,2,100,1,156,2,125,4,116, + 2,124,3,124,1,124,4,131,3,1,0,116,3,116,4,124, + 3,131,1,100,2,100,0,133,2,25,0,124,1,124,2,100, + 3,141,3,83,0,41,4,78,114,170,0,0,0,114,156,0, + 0,0,41,2,114,128,0,0,0,114,118,0,0,0,41,5, + 114,190,0,0,0,114,242,0,0,0,114,163,0,0,0,114, + 176,0,0,0,114,250,0,0,0,41,5,114,130,0,0,0, + 114,150,0,0,0,114,58,0,0,0,114,42,0,0,0,114, + 162,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,228,0,0,0,62,4,0,0,115,24,0,0, + 0,10,1,10,1,2,4,2,1,6,254,12,4,2,1,14, + 1,2,1,2,1,6,253,255,128,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,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, + 0,114,24,0,0,0,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,7,0,0,0,114,234,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,244,0,0,0, + 78,4,0,0,114,25,0,0,0,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,137,0, + 0,0,114,136,0,0,0,114,138,0,0,0,114,139,0,0, + 0,114,228,0,0,0,114,244,0,0,0,114,7,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 239,0,0,0,16,4,0,0,115,6,0,0,0,8,2,14, - 1,255,128,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,0,0,0,0,5,0,0, - 0,5,0,0,0,67,0,0,0,115,24,0,0,0,116,0, - 124,1,131,1,125,4,124,0,106,1,124,2,124,3,124,4, - 100,1,141,3,83,0,41,2,78,169,1,218,5,95,109,111, - 100,101,41,2,114,126,0,0,0,114,240,0,0,0,41,5, - 114,130,0,0,0,114,119,0,0,0,114,118,0,0,0,114, - 42,0,0,0,114,66,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,241,0,0,0,21,4,0, - 0,115,6,0,0,0,8,2,16,1,255,128,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,75, - 0,0,0,114,23,1,0,0,99,3,0,0,0,0,0,0, - 0,1,0,0,0,9,0,0,0,11,0,0,0,67,0,0, - 0,115,254,0,0,0,116,0,124,1,131,1,92,2,125,4, - 125,5,103,0,125,6,124,4,114,62,116,1,124,4,131,1, - 115,62,116,0,124,4,131,1,92,2,125,4,125,7,124,6, - 160,2,124,7,161,1,1,0,124,4,114,62,116,1,124,4, - 131,1,114,28,116,3,124,6,131,1,68,0,93,96,125,7, - 116,4,124,4,124,7,131,2,125,4,122,14,116,5,160,6, - 124,4,161,1,1,0,87,0,113,70,4,0,116,7,121,116, - 1,0,1,0,1,0,89,0,113,70,4,0,116,8,121,252, - 1,0,125,8,1,0,122,30,116,9,160,10,100,1,124,4, - 124,8,161,3,1,0,87,0,89,0,100,2,125,8,126,8, - 1,0,100,2,83,0,100,2,125,8,126,8,119,1,122,30, - 116,11,124,1,124,2,124,3,131,3,1,0,116,9,160,10, - 100,3,124,1,161,2,1,0,87,0,100,2,83,0,4,0, - 116,8,121,250,1,0,125,8,1,0,122,28,116,9,160,10, - 100,1,124,1,124,8,161,3,1,0,87,0,89,0,100,2, - 125,8,126,8,100,2,83,0,100,2,125,8,126,8,119,1, - 119,0,119,0,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, - 12,114,61,0,0,0,114,71,0,0,0,114,197,0,0,0, - 114,56,0,0,0,114,54,0,0,0,114,19,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,64,0,0,0,114,146,0,0, - 0,114,160,0,0,0,114,84,0,0,0,41,9,114,130,0, - 0,0,114,58,0,0,0,114,42,0,0,0,114,24,1,0, - 0,218,6,112,97,114,101,110,116,114,108,0,0,0,114,53, - 0,0,0,114,49,0,0,0,114,243,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,240,0,0, - 0,26,4,0,0,115,58,0,0,0,12,2,4,1,12,2, - 12,1,10,1,12,254,12,4,10,1,2,1,14,1,12,1, - 4,2,14,1,6,3,4,1,4,255,16,2,8,128,2,1, - 12,1,18,1,14,1,8,2,2,1,18,255,8,128,2,254, - 2,247,255,128,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,137,0,0,0,114,136,0,0,0,114,138,0,0, - 0,114,139,0,0,0,114,239,0,0,0,114,241,0,0,0, - 114,240,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,21,1,0,0,12,4, - 0,0,115,12,0,0,0,8,0,4,2,8,2,8,5,18, - 5,255,128,114,21,1,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0, - 0,115,32,0,0,0,101,0,90,1,100,0,90,2,100,1, - 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0, - 90,5,100,6,83,0,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,0,0,0,0,5,0,0,0,5,0, - 0,0,67,0,0,0,115,68,0,0,0,124,0,160,0,124, - 1,161,1,125,2,124,0,160,1,124,2,161,1,125,3,124, - 1,124,2,100,1,156,2,125,4,116,2,124,3,124,1,124, - 4,131,3,1,0,116,3,116,4,124,3,131,1,100,2,100, - 0,133,2,25,0,124,1,124,2,100,3,141,3,83,0,41, - 4,78,114,170,0,0,0,114,156,0,0,0,41,2,114,128, - 0,0,0,114,118,0,0,0,41,5,114,190,0,0,0,114, - 242,0,0,0,114,163,0,0,0,114,176,0,0,0,114,250, - 0,0,0,41,5,114,130,0,0,0,114,150,0,0,0,114, - 58,0,0,0,114,42,0,0,0,114,162,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,228,0, - 0,0,61,4,0,0,115,24,0,0,0,10,1,10,1,2, - 4,2,1,6,254,12,4,2,1,14,1,2,1,2,1,6, - 253,255,128,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,0,0,0,0,2, - 0,0,0,1,0,0,0,67,0,0,0,114,24,0,0,0, - 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,7,0,0, - 0,114,234,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,244,0,0,0,77,4,0,0,114,25, - 0,0,0,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,137,0,0,0,114,136,0,0, - 0,114,138,0,0,0,114,139,0,0,0,114,228,0,0,0, - 114,244,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,27,1,0,0,57,4, - 0,0,115,10,0,0,0,8,0,4,2,8,2,12,16,255, - 128,114,27,1,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115, - 92,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, - 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5, - 100,6,100,7,132,0,90,6,100,8,100,9,132,0,90,7, - 100,10,100,11,132,0,90,8,100,12,100,13,132,0,90,9, - 100,14,100,15,132,0,90,10,100,16,100,17,132,0,90,11, - 101,12,100,18,100,19,132,0,131,1,90,13,100,20,83,0, - 41,21,114,17,1,0,0,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,0, - 0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,115, - 16,0,0,0,124,1,124,0,95,0,124,2,124,0,95,1, - 100,0,83,0,114,121,0,0,0,114,170,0,0,0,41,3, - 114,130,0,0,0,114,128,0,0,0,114,58,0,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,223, - 0,0,0,90,4,0,0,115,6,0,0,0,6,1,10,1, - 255,128,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,0,0,0,0,2,0,0, - 0,2,0,0,0,67,0,0,0,114,255,0,0,0,114,121, - 0,0,0,114,0,1,0,0,114,2,1,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,3,1,0, - 0,94,4,0,0,114,4,1,0,0,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,0, - 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,114, - 5,1,0,0,114,121,0,0,0,114,6,1,0,0,114,8, + 27,1,0,0,58,4,0,0,115,10,0,0,0,8,0,4, + 2,8,2,12,16,255,128,114,27,1,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,64,0,0,0,115,92,0,0,0,101,0,90,1,100,0, + 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4, + 100,5,132,0,90,5,100,6,100,7,132,0,90,6,100,8, + 100,9,132,0,90,7,100,10,100,11,132,0,90,8,100,12, + 100,13,132,0,90,9,100,14,100,15,132,0,90,10,100,16, + 100,17,132,0,90,11,101,12,100,18,100,19,132,0,131,1, + 90,13,100,20,83,0,41,21,114,17,1,0,0,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,0,0,0,0,3,0,0,0,2,0,0, + 0,67,0,0,0,115,16,0,0,0,124,1,124,0,95,0, + 124,2,124,0,95,1,100,0,83,0,114,121,0,0,0,114, + 170,0,0,0,41,3,114,130,0,0,0,114,128,0,0,0, + 114,58,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,223,0,0,0,91,4,0,0,115,6,0, + 0,0,6,1,10,1,255,128,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,0, + 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,114, + 255,0,0,0,114,121,0,0,0,114,0,1,0,0,114,2, 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,9,1,0,0,98,4,0,0,114,10,1,0,0, - 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,0,0,0,0,3,0,0,0,5, - 0,0,0,67,0,0,0,115,36,0,0,0,116,0,160,1, - 116,2,106,3,124,1,161,2,125,2,116,0,160,4,100,1, - 124,1,106,5,124,0,106,6,161,3,1,0,124,2,83,0, - 41,3,122,38,67,114,101,97,116,101,32,97,110,32,117,110, - 105,116,105,97,108,105,122,101,100,32,101,120,116,101,110,115, - 105,111,110,32,109,111,100,117,108,101,122,38,101,120,116,101, - 110,115,105,111,110,32,109,111,100,117,108,101,32,123,33,114, - 125,32,108,111,97,100,101,100,32,102,114,111,109,32,123,33, - 114,125,78,41,7,114,146,0,0,0,114,229,0,0,0,114, - 174,0,0,0,90,14,99,114,101,97,116,101,95,100,121,110, - 97,109,105,99,114,160,0,0,0,114,128,0,0,0,114,58, - 0,0,0,41,3,114,130,0,0,0,114,198,0,0,0,114, - 231,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,226,0,0,0,101,4,0,0,115,16,0,0, - 0,4,2,6,1,4,255,6,2,8,1,4,255,4,2,255, - 128,122,33,69,120,116,101,110,115,105,111,110,70,105,108,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,0,0,0, - 0,2,0,0,0,5,0,0,0,67,0,0,0,115,36,0, - 0,0,116,0,160,1,116,2,106,3,124,1,161,2,1,0, - 116,0,160,4,100,1,124,0,106,5,124,0,106,6,161,3, - 1,0,100,2,83,0,41,3,122,30,73,110,105,116,105,97, - 108,105,122,101,32,97,110,32,101,120,116,101,110,115,105,111, - 110,32,109,111,100,117,108,101,122,40,101,120,116,101,110,115, - 105,111,110,32,109,111,100,117,108,101,32,123,33,114,125,32, - 101,120,101,99,117,116,101,100,32,102,114,111,109,32,123,33, - 114,125,78,41,7,114,146,0,0,0,114,229,0,0,0,114, - 174,0,0,0,90,12,101,120,101,99,95,100,121,110,97,109, - 105,99,114,160,0,0,0,114,128,0,0,0,114,58,0,0, - 0,169,2,114,130,0,0,0,114,231,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,232,0,0, - 0,109,4,0,0,115,10,0,0,0,14,2,6,1,8,1, - 8,255,255,128,122,31,69,120,116,101,110,115,105,111,110,70, - 105,108,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,0,0, - 0,0,2,0,0,0,4,0,0,0,3,0,0,0,115,36, - 0,0,0,116,0,124,0,106,1,131,1,100,1,25,0,137, - 0,116,2,135,0,102,1,100,2,100,3,132,8,116,3,68, - 0,131,1,131,1,83,0,41,5,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,3,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,4,0,0,0,51,0,0,0,115,26,0,0,0,124, - 0,93,18,125,1,136,0,100,0,124,1,23,0,107,2,86, - 0,1,0,113,2,100,1,83,0,41,2,114,223,0,0,0, - 78,114,7,0,0,0,169,2,114,5,0,0,0,218,6,115, - 117,102,102,105,120,169,1,90,9,102,105,108,101,95,110,97, - 109,101,114,7,0,0,0,114,8,0,0,0,114,9,0,0, - 0,118,4,0,0,115,8,0,0,0,4,0,2,1,20,255, - 255,128,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,78,41,4,114,61,0,0,0,114,58,0, - 0,0,218,3,97,110,121,114,219,0,0,0,114,234,0,0, - 0,114,7,0,0,0,114,31,1,0,0,114,8,0,0,0, - 114,193,0,0,0,115,4,0,0,115,10,0,0,0,14,2, - 12,1,2,1,8,255,255,128,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,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, - 0,114,24,0,0,0,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,7,0,0,0,114, - 234,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,228,0,0,0,121,4,0,0,114,25,0,0, - 0,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,0,0,0,0,2,0,0,0, - 1,0,0,0,67,0,0,0,114,24,0,0,0,41,2,122, - 53,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32, + 0,0,114,3,1,0,0,95,4,0,0,114,4,1,0,0, + 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,0,0,0,0,1,0,0,0,3,0,0, + 0,67,0,0,0,114,5,1,0,0,114,121,0,0,0,114, + 6,1,0,0,114,8,1,0,0,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,9,1,0,0,99,4,0, + 0,114,10,1,0,0,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,0,0,0, + 0,3,0,0,0,5,0,0,0,67,0,0,0,115,36,0, + 0,0,116,0,160,1,116,2,106,3,124,1,161,2,125,2, + 116,0,160,4,100,1,124,1,106,5,124,0,106,6,161,3, + 1,0,124,2,83,0,41,3,122,38,67,114,101,97,116,101, + 32,97,110,32,117,110,105,116,105,97,108,105,122,101,100,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,7,0,0,0,114,234,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,244,0,0,0,125,4,0,0,114,25,0,0,0,122,30, + 122,38,101,120,116,101,110,115,105,111,110,32,109,111,100,117, + 108,101,32,123,33,114,125,32,108,111,97,100,101,100,32,102, + 114,111,109,32,123,33,114,125,78,41,7,114,146,0,0,0, + 114,229,0,0,0,114,174,0,0,0,90,14,99,114,101,97, + 116,101,95,100,121,110,97,109,105,99,114,160,0,0,0,114, + 128,0,0,0,114,58,0,0,0,41,3,114,130,0,0,0, + 114,198,0,0,0,114,231,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,226,0,0,0,102,4, + 0,0,115,16,0,0,0,4,2,6,1,4,255,6,2,8, + 1,4,255,4,2,255,128,122,33,69,120,116,101,110,115,105, + 111,110,70,105,108,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,0,0,0,0,2,0,0,0,5,0,0,0,67, + 0,0,0,115,36,0,0,0,116,0,160,1,116,2,106,3, + 124,1,161,2,1,0,116,0,160,4,100,1,124,0,106,5, + 124,0,106,6,161,3,1,0,100,2,83,0,41,3,122,30, + 73,110,105,116,105,97,108,105,122,101,32,97,110,32,101,120, + 116,101,110,115,105,111,110,32,109,111,100,117,108,101,122,40, + 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, + 32,123,33,114,125,32,101,120,101,99,117,116,101,100,32,102, + 114,111,109,32,123,33,114,125,78,41,7,114,146,0,0,0, + 114,229,0,0,0,114,174,0,0,0,90,12,101,120,101,99, + 95,100,121,110,97,109,105,99,114,160,0,0,0,114,128,0, + 0,0,114,58,0,0,0,169,2,114,130,0,0,0,114,231, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,232,0,0,0,110,4,0,0,115,10,0,0,0, + 14,2,6,1,8,1,8,255,255,128,122,31,69,120,116,101, + 110,115,105,111,110,70,105,108,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,0,0,0,0,2,0,0,0,4,0,0,0, + 3,0,0,0,115,36,0,0,0,116,0,124,0,106,1,131, + 1,100,1,25,0,137,0,116,2,135,0,102,1,100,2,100, + 3,132,8,116,3,68,0,131,1,131,1,83,0,41,5,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,3,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,4,0,0,0,51,0,0,0, + 115,26,0,0,0,124,0,93,18,125,1,136,0,100,0,124, + 1,23,0,107,2,86,0,1,0,113,2,100,1,83,0,41, + 2,114,223,0,0,0,78,114,7,0,0,0,169,2,114,5, + 0,0,0,218,6,115,117,102,102,105,120,169,1,90,9,102, + 105,108,101,95,110,97,109,101,114,7,0,0,0,114,8,0, + 0,0,114,9,0,0,0,119,4,0,0,115,8,0,0,0, + 4,0,2,1,20,255,255,128,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,78,41,4,114,61, + 0,0,0,114,58,0,0,0,218,3,97,110,121,114,219,0, + 0,0,114,234,0,0,0,114,7,0,0,0,114,31,1,0, + 0,114,8,0,0,0,114,193,0,0,0,116,4,0,0,115, + 10,0,0,0,14,2,12,1,2,1,8,255,255,128,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, + 100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,2, 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1, - 0,0,0,67,0,0,0,114,13,1,0,0,114,14,1,0, - 0,114,62,0,0,0,114,234,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,190,0,0,0,129, - 4,0,0,114,15,1,0,0,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,14,114,137,0, - 0,0,114,136,0,0,0,114,138,0,0,0,114,139,0,0, - 0,114,223,0,0,0,114,3,1,0,0,114,9,1,0,0, - 114,226,0,0,0,114,232,0,0,0,114,193,0,0,0,114, - 228,0,0,0,114,244,0,0,0,114,147,0,0,0,114,190, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,17,1,0,0,82,4,0,0, - 115,26,0,0,0,8,0,4,2,8,6,8,4,8,4,8, - 3,8,8,8,6,8,6,8,4,2,4,14,1,255,128,114, - 17,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,64,0,0,0,115,104,0, - 0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2, - 100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,6, - 100,7,132,0,90,6,100,8,100,9,132,0,90,7,100,10, - 100,11,132,0,90,8,100,12,100,13,132,0,90,9,100,14, - 100,15,132,0,90,10,100,16,100,17,132,0,90,11,100,18, - 100,19,132,0,90,12,100,20,100,21,132,0,90,13,100,22, - 100,23,132,0,90,14,100,24,83,0,41,25,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, - 0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,0, - 115,36,0,0,0,124,1,124,0,95,0,124,2,124,0,95, - 1,116,2,124,0,160,3,161,0,131,1,124,0,95,4,124, - 3,124,0,95,5,100,0,83,0,114,121,0,0,0,41,6, - 218,5,95,110,97,109,101,218,5,95,112,97,116,104,114,123, - 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,169,4,114,130,0,0,0,114,128,0, - 0,0,114,58,0,0,0,90,11,112,97,116,104,95,102,105, - 110,100,101,114,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,223,0,0,0,142,4,0,0,115,10,0,0, - 0,6,1,6,1,14,1,10,1,255,128,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,0,0,0, - 0,4,0,0,0,3,0,0,0,67,0,0,0,115,38,0, - 0,0,124,0,106,0,160,1,100,1,161,1,92,3,125,1, - 125,2,125,3,124,2,100,2,107,2,114,30,100,3,83,0, - 124,1,100,4,102,2,83,0,41,6,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,86,0,0,0,114, - 10,0,0,0,41,2,114,16,0,0,0,114,58,0,0,0, - 90,8,95,95,112,97,116,104,95,95,78,41,2,114,34,1, - 0,0,114,55,0,0,0,41,4,114,130,0,0,0,114,26, - 1,0,0,218,3,100,111,116,90,2,109,101,114,7,0,0, - 0,114,7,0,0,0,114,8,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,148,4,0,0,115,10,0,0,0,18,2,8, - 1,4,2,8,3,255,128,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,0,0,0,0,3,0,0,0, - 3,0,0,0,67,0,0,0,115,28,0,0,0,124,0,160, - 0,161,0,92,2,125,1,125,2,116,1,116,2,106,3,124, - 1,25,0,124,2,131,2,83,0,114,121,0,0,0,41,4, - 114,41,1,0,0,114,142,0,0,0,114,16,0,0,0,218, - 7,109,111,100,117,108,101,115,41,3,114,130,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,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,36,1,0,0,158,4,0,0,115,6,0,0,0, - 12,1,16,1,255,128,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, - 0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,0, - 115,80,0,0,0,116,0,124,0,160,1,161,0,131,1,125, - 1,124,1,124,0,106,2,107,3,114,74,124,0,160,3,124, - 0,106,4,124,1,161,2,125,2,124,2,100,0,117,1,114, - 68,124,2,106,5,100,0,117,0,114,68,124,2,106,6,114, - 68,124,2,106,6,124,0,95,7,124,1,124,0,95,2,124, - 0,106,7,83,0,114,121,0,0,0,41,8,114,123,0,0, - 0,114,36,1,0,0,114,37,1,0,0,114,38,1,0,0, - 114,34,1,0,0,114,151,0,0,0,114,189,0,0,0,114, - 35,1,0,0,41,3,114,130,0,0,0,90,11,112,97,114, - 101,110,116,95,112,97,116,104,114,198,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,218,12,95,114, - 101,99,97,108,99,117,108,97,116,101,162,4,0,0,115,18, - 0,0,0,12,2,10,1,14,1,18,3,6,1,8,1,6, - 1,6,1,255,128,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,0,0,0,0,1, - 0,0,0,3,0,0,0,67,0,0,0,243,12,0,0,0, - 116,0,124,0,160,1,161,0,131,1,83,0,114,121,0,0, - 0,41,2,218,4,105,116,101,114,114,43,1,0,0,114,8, - 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,8,95,95,105,116,101,114,95,95,175,4,0,0, - 243,4,0,0,0,12,1,255,128,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,2,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,2,0,0,0,67,0,0,0,115,12,0,0,0, - 124,0,160,0,161,0,124,1,25,0,83,0,114,121,0,0, - 0,169,1,114,43,1,0,0,41,2,114,130,0,0,0,218, - 5,105,110,100,101,120,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,218,11,95,95,103,101,116,105,116,101,109, - 95,95,178,4,0,0,114,47,1,0,0,122,26,95,78,97, - 109,101,115,112,97,99,101,80,97,116,104,46,95,95,103,101, - 116,105,116,101,109,95,95,99,3,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0, - 115,14,0,0,0,124,2,124,0,106,0,124,1,60,0,100, - 0,83,0,114,121,0,0,0,41,1,114,35,1,0,0,41, - 3,114,130,0,0,0,114,49,1,0,0,114,58,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 11,95,95,115,101,116,105,116,101,109,95,95,181,4,0,0, - 115,4,0,0,0,14,1,255,128,122,26,95,78,97,109,101, - 115,112,97,99,101,80,97,116,104,46,95,95,115,101,116,105, - 116,101,109,95,95,99,1,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,3,0,0,0,67,0,0,0,114,44, - 1,0,0,114,121,0,0,0,41,2,114,4,0,0,0,114, + 0,0,0,67,0,0,0,114,24,0,0,0,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,7,0,0,0,114,234,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,228,0,0,0,122,4, + 0,0,114,25,0,0,0,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,0,0, + 0,0,2,0,0,0,1,0,0,0,67,0,0,0,114,24, + 0,0,0,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,7,0, + 0,0,114,234,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,244,0,0,0,126,4,0,0,114, + 25,0,0,0,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,0,0,0, + 0,2,0,0,0,1,0,0,0,67,0,0,0,114,13,1, + 0,0,114,14,1,0,0,114,62,0,0,0,114,234,0,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,190,0,0,0,130,4,0,0,114,15,1,0,0,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,14,114,137,0,0,0,114,136,0,0,0,114,138,0, + 0,0,114,139,0,0,0,114,223,0,0,0,114,3,1,0, + 0,114,9,1,0,0,114,226,0,0,0,114,232,0,0,0, + 114,193,0,0,0,114,228,0,0,0,114,244,0,0,0,114, + 147,0,0,0,114,190,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,17,1, + 0,0,83,4,0,0,115,26,0,0,0,8,0,4,2,8, + 6,8,4,8,4,8,3,8,8,8,6,8,6,8,4,2, + 4,14,1,255,128,114,17,1,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64, + 0,0,0,115,104,0,0,0,101,0,90,1,100,0,90,2, + 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5, + 132,0,90,5,100,6,100,7,132,0,90,6,100,8,100,9, + 132,0,90,7,100,10,100,11,132,0,90,8,100,12,100,13, + 132,0,90,9,100,14,100,15,132,0,90,10,100,16,100,17, + 132,0,90,11,100,18,100,19,132,0,90,12,100,20,100,21, + 132,0,90,13,100,22,100,23,132,0,90,14,100,24,83,0, + 41,25,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,0,0,0,0,4,0,0,0,3,0, + 0,0,67,0,0,0,115,36,0,0,0,124,1,124,0,95, + 0,124,2,124,0,95,1,116,2,124,0,160,3,161,0,131, + 1,124,0,95,4,124,3,124,0,95,5,100,0,83,0,114, + 121,0,0,0,41,6,218,5,95,110,97,109,101,218,5,95, + 112,97,116,104,114,123,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,169,4,114,130, + 0,0,0,114,128,0,0,0,114,58,0,0,0,90,11,112, + 97,116,104,95,102,105,110,100,101,114,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,223,0,0,0,143,4, + 0,0,115,10,0,0,0,6,1,6,1,14,1,10,1,255, + 128,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,0,0,0,0,4,0,0,0,3,0,0,0,67, + 0,0,0,115,38,0,0,0,124,0,106,0,160,1,100,1, + 161,1,92,3,125,1,125,2,125,3,124,2,100,2,107,2, + 114,30,100,3,83,0,124,1,100,4,102,2,83,0,41,6, + 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,86,0,0,0,114,10,0,0,0,41,2,114,16,0,0, + 0,114,58,0,0,0,90,8,95,95,112,97,116,104,95,95, + 78,41,2,114,34,1,0,0,114,55,0,0,0,41,4,114, + 130,0,0,0,114,26,1,0,0,218,3,100,111,116,90,2, + 109,101,114,7,0,0,0,114,7,0,0,0,114,8,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,149,4,0,0,115,10, + 0,0,0,18,2,8,1,4,2,8,3,255,128,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,0,0, + 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,28, + 0,0,0,124,0,160,0,161,0,92,2,125,1,125,2,116, + 1,116,2,106,3,124,1,25,0,124,2,131,2,83,0,114, + 121,0,0,0,41,4,114,41,1,0,0,114,142,0,0,0, + 114,16,0,0,0,218,7,109,111,100,117,108,101,115,41,3, + 114,130,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,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,36,1,0,0,159,4,0, + 0,115,6,0,0,0,12,1,16,1,255,128,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,0,0,0,0,3,0,0,0,4,0, + 0,0,67,0,0,0,115,80,0,0,0,116,0,124,0,160, + 1,161,0,131,1,125,1,124,1,124,0,106,2,107,3,114, + 74,124,0,160,3,124,0,106,4,124,1,161,2,125,2,124, + 2,100,0,117,1,114,68,124,2,106,5,100,0,117,0,114, + 68,124,2,106,6,114,68,124,2,106,6,124,0,95,7,124, + 1,124,0,95,2,124,0,106,7,83,0,114,121,0,0,0, + 41,8,114,123,0,0,0,114,36,1,0,0,114,37,1,0, + 0,114,38,1,0,0,114,34,1,0,0,114,151,0,0,0, + 114,189,0,0,0,114,35,1,0,0,41,3,114,130,0,0, + 0,90,11,112,97,114,101,110,116,95,112,97,116,104,114,198, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,218,12,95,114,101,99,97,108,99,117,108,97,116,101, + 163,4,0,0,115,18,0,0,0,12,2,10,1,14,1,18, + 3,6,1,8,1,6,1,6,1,255,128,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,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0, + 0,243,12,0,0,0,116,0,124,0,160,1,161,0,131,1, + 83,0,114,121,0,0,0,41,2,218,4,105,116,101,114,114, 43,1,0,0,114,8,1,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,218,7,95,95,108,101,110,95, - 95,184,4,0,0,114,47,1,0,0,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,0,0,0,0,1, - 0,0,0,3,0,0,0,67,0,0,0,243,12,0,0,0, - 100,1,160,0,124,0,106,1,161,1,83,0,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,77,0,0,0,114,35,1,0, - 0,114,8,1,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,218,8,95,95,114,101,112,114,95,95,187, - 4,0,0,114,47,1,0,0,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,0,0,0,0,2,0, - 0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,124, - 1,124,0,160,0,161,0,118,0,83,0,114,121,0,0,0, - 114,48,1,0,0,169,2,114,130,0,0,0,218,4,105,116, - 101,109,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,190, - 4,0,0,114,47,1,0,0,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,0,0, - 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,16, - 0,0,0,124,0,106,0,160,1,124,1,161,1,1,0,100, - 0,83,0,114,121,0,0,0,41,2,114,35,1,0,0,114, - 197,0,0,0,114,55,1,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,197,0,0,0,193,4,0, - 0,243,4,0,0,0,16,1,255,128,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,15,114,137,0,0,0,114,136,0,0,0,114,138, - 0,0,0,114,139,0,0,0,114,223,0,0,0,114,41,1, - 0,0,114,36,1,0,0,114,43,1,0,0,114,46,1,0, - 0,114,50,1,0,0,114,51,1,0,0,114,52,1,0,0, - 114,54,1,0,0,114,57,1,0,0,114,197,0,0,0,114, - 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,33,1,0,0,135,4,0,0,115,28,0,0, - 0,8,0,4,1,8,6,8,6,8,10,8,4,8,13,8, - 3,8,3,8,3,8,3,8,3,12,3,255,128,114,33,1, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,64,0,0,0,115,88,0,0,0, - 101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,3, - 101,4,100,3,100,4,132,0,131,1,90,5,100,5,100,6, - 132,0,90,6,100,7,100,8,132,0,90,7,100,9,100,10, - 132,0,90,8,100,11,100,12,132,0,90,9,100,13,100,14, - 132,0,90,10,100,15,100,16,132,0,90,11,100,17,100,18, - 132,0,90,12,100,19,83,0,41,20,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,0,0,0,0,4,0,0,0,4,0,0, - 0,67,0,0,0,115,18,0,0,0,116,0,124,1,124,2, - 124,3,131,3,124,0,95,1,100,0,83,0,114,121,0,0, - 0,41,2,114,33,1,0,0,114,35,1,0,0,114,39,1, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,223,0,0,0,199,4,0,0,115,4,0,0,0,18, - 1,255,128,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,1, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, - 0,0,0,67,0,0,0,114,53,1,0,0,41,3,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,78,41, - 2,114,77,0,0,0,114,137,0,0,0,41,1,114,231,0, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,11,109,111,100,117,108,101,95,114,101,112,114,202,4, - 0,0,115,4,0,0,0,12,7,255,128,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,0,114,8,0,0,0,218,8,95,95,105,116,101,114, + 95,95,176,4,0,0,243,4,0,0,0,12,1,255,128,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,2,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0, + 0,115,12,0,0,0,124,0,160,0,161,0,124,1,25,0, + 83,0,114,121,0,0,0,169,1,114,43,1,0,0,41,2, + 114,130,0,0,0,218,5,105,110,100,101,120,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,11,95,95,103, + 101,116,105,116,101,109,95,95,179,4,0,0,114,47,1,0, + 0,122,26,95,78,97,109,101,115,112,97,99,101,80,97,116, + 104,46,95,95,103,101,116,105,116,101,109,95,95,99,3,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,67,0,0,0,115,14,0,0,0,124,2,124,0,106, + 0,124,1,60,0,100,0,83,0,114,121,0,0,0,41,1, + 114,35,1,0,0,41,3,114,130,0,0,0,114,49,1,0, + 0,114,58,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,11,95,95,115,101,116,105,116,101,109, + 95,95,182,4,0,0,115,4,0,0,0,14,1,255,128,122, + 26,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, + 95,95,115,101,116,105,116,101,109,95,95,99,1,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 67,0,0,0,114,44,1,0,0,114,121,0,0,0,41,2, + 114,4,0,0,0,114,43,1,0,0,114,8,1,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,7, + 95,95,108,101,110,95,95,185,4,0,0,114,47,1,0,0, + 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,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0, + 0,243,12,0,0,0,100,1,160,0,124,0,106,1,161,1, + 83,0,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,77,0, + 0,0,114,35,1,0,0,114,8,1,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,8,95,95,114, + 101,112,114,95,95,188,4,0,0,114,47,1,0,0,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, + 0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0, + 115,12,0,0,0,124,1,124,0,160,0,161,0,118,0,83, + 0,114,121,0,0,0,114,48,1,0,0,169,2,114,130,0, + 0,0,218,4,105,116,101,109,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,218,12,95,95,99,111,110,116,97, + 105,110,115,95,95,191,4,0,0,114,47,1,0,0,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,0,0,0,0,2,0,0,0,3,0,0,0, + 67,0,0,0,115,16,0,0,0,124,0,106,0,160,1,124, + 1,161,1,1,0,100,0,83,0,114,121,0,0,0,41,2, + 114,35,1,0,0,114,197,0,0,0,114,55,1,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,197, + 0,0,0,194,4,0,0,243,4,0,0,0,16,1,255,128, + 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,15,114,137,0,0,0,114, + 136,0,0,0,114,138,0,0,0,114,139,0,0,0,114,223, + 0,0,0,114,41,1,0,0,114,36,1,0,0,114,43,1, + 0,0,114,46,1,0,0,114,50,1,0,0,114,51,1,0, + 0,114,52,1,0,0,114,54,1,0,0,114,57,1,0,0, + 114,197,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,33,1,0,0,136,4, + 0,0,115,28,0,0,0,8,0,4,1,8,6,8,6,8, + 10,8,4,8,13,8,3,8,3,8,3,8,3,8,3,12, + 3,255,128,114,33,1,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0, + 0,115,88,0,0,0,101,0,90,1,100,0,90,2,100,1, + 100,2,132,0,90,3,101,4,100,3,100,4,132,0,131,1, + 90,5,100,5,100,6,132,0,90,6,100,7,100,8,132,0, + 90,7,100,9,100,10,132,0,90,8,100,11,100,12,132,0, + 90,9,100,13,100,14,132,0,90,10,100,15,100,16,132,0, + 90,11,100,17,100,18,132,0,90,12,100,19,83,0,41,20, + 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,0,0,0,0,4, + 0,0,0,4,0,0,0,67,0,0,0,115,18,0,0,0, + 116,0,124,1,124,2,124,3,131,3,124,0,95,1,100,0, + 83,0,114,121,0,0,0,41,2,114,33,1,0,0,114,35, + 1,0,0,114,39,1,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,223,0,0,0,200,4,0,0, + 115,4,0,0,0,18,1,255,128,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,1,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,67,0,0,0,114,53,1, + 0,0,41,3,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,78,41,2,114,77,0,0,0,114,137,0,0, + 0,41,1,114,231,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,218,11,109,111,100,117,108,101,95, + 114,101,112,114,203,4,0,0,115,4,0,0,0,12,7,255, + 128,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,0,0,0,0,2,0,0,0, + 1,0,0,0,67,0,0,0,114,24,0,0,0,41,2,78, + 84,114,7,0,0,0,114,234,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,193,0,0,0,212, + 4,0,0,243,4,0,0,0,4,1,255,128,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,0,0,0,0,2,0,0,0,1,0,0,0,67,0, - 0,0,114,24,0,0,0,41,2,78,84,114,7,0,0,0, - 114,234,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,193,0,0,0,211,4,0,0,243,4,0, - 0,0,4,1,255,128,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,0,0,0,0, - 2,0,0,0,1,0,0,0,67,0,0,0,114,24,0,0, - 0,41,2,78,114,10,0,0,0,114,7,0,0,0,114,234, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,244,0,0,0,214,4,0,0,114,61,1,0,0, - 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,0,0,0,0,2,0,0,0,6,0, - 0,0,67,0,0,0,115,16,0,0,0,116,0,100,1,100, - 2,100,3,100,4,100,5,141,4,83,0,41,6,78,114,10, - 0,0,0,122,8,60,115,116,114,105,110,103,62,114,230,0, - 0,0,84,41,1,114,246,0,0,0,41,1,114,247,0,0, - 0,114,234,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,228,0,0,0,217,4,0,0,114,58, - 1,0,0,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,114,24,0,0,0,41,2,78,114,10,0,0,0,114, + 7,0,0,0,114,234,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,244,0,0,0,215,4,0, + 0,114,61,1,0,0,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,0,0,0,0, + 2,0,0,0,6,0,0,0,67,0,0,0,115,16,0,0, + 0,116,0,100,1,100,2,100,3,100,4,100,5,141,4,83, + 0,41,6,78,114,10,0,0,0,122,8,60,115,116,114,105, + 110,103,62,114,230,0,0,0,84,41,1,114,246,0,0,0, + 41,1,114,247,0,0,0,114,234,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,228,0,0,0, + 218,4,0,0,114,58,1,0,0,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,0,0,0, + 0,2,0,0,0,1,0,0,0,67,0,0,0,114,24,0, + 0,0,114,224,0,0,0,114,7,0,0,0,114,225,0,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,226,0,0,0,221,4,0,0,114,227,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,0,0,0,0,2,0,0,0,1, - 0,0,0,67,0,0,0,114,24,0,0,0,114,224,0,0, - 0,114,7,0,0,0,114,225,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,226,0,0,0,220, - 4,0,0,114,227,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,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, - 0,115,4,0,0,0,100,0,83,0,114,121,0,0,0,114, - 7,0,0,0,114,28,1,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,232,0,0,0,223,4,0, - 0,114,61,1,0,0,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,0,0,0, - 0,2,0,0,0,4,0,0,0,67,0,0,0,115,26,0, - 0,0,116,0,160,1,100,1,124,0,106,2,161,2,1,0, - 116,0,160,3,124,0,124,1,161,2,83,0,41,3,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,78,41,4,114,146,0, - 0,0,114,160,0,0,0,114,35,1,0,0,114,233,0,0, - 0,114,234,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,235,0,0,0,226,4,0,0,115,10, - 0,0,0,6,7,4,1,4,255,12,3,255,128,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,99,2,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0, - 67,0,0,0,115,22,0,0,0,100,1,100,2,108,0,109, - 1,125,2,1,0,124,2,124,0,106,2,131,1,83,0,41, - 3,78,114,0,0,0,0,41,1,218,15,78,97,109,101,115, - 112,97,99,101,82,101,97,100,101,114,41,3,114,19,1,0, - 0,114,62,1,0,0,114,35,1,0,0,41,3,114,130,0, - 0,0,114,231,0,0,0,114,62,1,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,20,1,0,0, - 238,4,0,0,115,6,0,0,0,12,1,10,1,255,128,122, - 36,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101, - 114,46,103,101,116,95,114,101,115,111,117,114,99,101,95,114, - 101,97,100,101,114,78,41,13,114,137,0,0,0,114,136,0, - 0,0,114,138,0,0,0,114,223,0,0,0,114,220,0,0, - 0,114,60,1,0,0,114,193,0,0,0,114,244,0,0,0, - 114,228,0,0,0,114,226,0,0,0,114,232,0,0,0,114, - 235,0,0,0,114,20,1,0,0,114,7,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,59,1, - 0,0,198,4,0,0,115,24,0,0,0,8,0,8,1,2, - 3,10,1,8,8,8,3,8,3,8,3,8,3,8,3,12, - 12,255,128,114,59,1,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,0, - 0,115,118,0,0,0,101,0,90,1,100,0,90,2,100,1, - 90,3,101,4,100,2,100,3,132,0,131,1,90,5,101,4, - 100,4,100,5,132,0,131,1,90,6,101,7,100,6,100,7, - 132,0,131,1,90,8,101,7,100,8,100,9,132,0,131,1, - 90,9,101,7,100,19,100,11,100,12,132,1,131,1,90,10, - 101,7,100,20,100,13,100,14,132,1,131,1,90,11,101,7, - 100,21,100,15,100,16,132,1,131,1,90,12,101,4,100,17, - 100,18,132,0,131,1,90,13,100,10,83,0,41,22,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,0,0,0,0,0, + 0,0,0,67,0,0,0,115,4,0,0,0,100,0,83,0, + 114,121,0,0,0,114,7,0,0,0,114,28,1,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,232, + 0,0,0,224,4,0,0,114,61,1,0,0,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,0,0,0,0,2,0,0,0,4,0,0,0,67, - 0,0,0,115,64,0,0,0,116,0,116,1,106,2,160,3, - 161,0,131,1,68,0,93,44,92,2,125,0,125,1,124,1, - 100,1,117,0,114,40,116,1,106,2,124,0,61,0,113,14, - 116,4,124,1,100,2,131,2,114,58,124,1,160,5,161,0, - 1,0,113,14,100,1,83,0,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,78,218,17,105,110,118,97, - 108,105,100,97,116,101,95,99,97,99,104,101,115,41,6,218, - 4,108,105,115,116,114,16,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, - 5,105,116,101,109,115,114,140,0,0,0,114,64,1,0,0, - 41,2,114,128,0,0,0,218,6,102,105,110,100,101,114,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,64, - 1,0,0,249,4,0,0,115,16,0,0,0,22,4,8,1, - 10,1,10,1,8,1,2,128,4,252,255,128,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,1,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,9,0,0,0,67, - 0,0,0,115,76,0,0,0,116,0,106,1,100,1,117,1, - 114,28,116,0,106,1,115,28,116,2,160,3,100,2,116,4, - 161,2,1,0,116,0,106,1,68,0,93,34,125,1,122,14, - 124,1,124,0,131,1,87,0,2,0,1,0,83,0,4,0, - 116,5,121,74,1,0,1,0,1,0,89,0,113,34,100,1, - 83,0,119,0,41,3,122,46,83,101,97,114,99,104,32,115, - 121,115,46,112,97,116,104,95,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,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,16,0,0,0,218,10,112,97,116,104,95,104,111, - 111,107,115,114,88,0,0,0,114,89,0,0,0,114,149,0, - 0,0,114,129,0,0,0,41,2,114,58,0,0,0,90,4, - 104,111,111,107,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,11,95,112,97,116,104,95,104,111,111,107,115, - 3,5,0,0,115,20,0,0,0,16,3,12,1,10,1,2, - 1,14,1,12,1,4,1,4,2,2,253,255,128,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,0,0, - 0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,100, - 0,0,0,124,1,100,1,107,2,114,40,122,12,116,0,160, - 1,161,0,125,1,87,0,110,18,4,0,116,2,121,98,1, - 0,1,0,1,0,89,0,100,2,83,0,122,16,116,3,106, - 4,124,1,25,0,125,2,87,0,124,2,83,0,4,0,116, - 5,121,96,1,0,1,0,1,0,124,0,160,6,124,1,161, - 1,125,2,124,2,116,3,106,4,124,1,60,0,89,0,124, - 2,83,0,119,0,119,0,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,10,0, - 0,0,78,41,7,114,19,0,0,0,114,70,0,0,0,218, - 17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114, - 111,114,114,16,0,0,0,114,66,1,0,0,218,8,75,101, - 121,69,114,114,111,114,114,70,1,0,0,41,3,114,209,0, - 0,0,114,58,0,0,0,114,68,1,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,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,16,5,0,0,115,30,0,0,0,8,8,2,1,12,1, - 12,1,6,3,2,1,12,1,4,4,12,253,10,1,12,1, - 4,1,2,253,2,250,255,128,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,0,0,0,0,6,0,0,0,4,0,0,0,67,0, - 0,0,115,82,0,0,0,116,0,124,2,100,1,131,2,114, - 26,124,2,160,1,124,1,161,1,92,2,125,3,125,4,110, - 14,124,2,160,2,124,1,161,1,125,3,103,0,125,4,124, - 3,100,0,117,1,114,60,116,3,160,4,124,1,124,3,161, - 2,83,0,116,3,160,5,124,1,100,0,161,2,125,5,124, - 4,124,5,95,6,124,5,83,0,41,2,78,114,148,0,0, - 0,41,7,114,140,0,0,0,114,148,0,0,0,114,217,0, - 0,0,114,146,0,0,0,114,212,0,0,0,114,194,0,0, - 0,114,189,0,0,0,41,6,114,209,0,0,0,114,150,0, - 0,0,114,68,1,0,0,114,151,0,0,0,114,152,0,0, - 0,114,198,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,218,16,95,108,101,103,97,99,121,95,103, - 101,116,95,115,112,101,99,38,5,0,0,115,20,0,0,0, - 10,4,16,1,10,2,4,1,8,1,12,1,12,1,6,1, - 4,1,255,128,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,0,0,0,0,9, - 0,0,0,5,0,0,0,67,0,0,0,115,166,0,0,0, - 103,0,125,4,124,2,68,0,93,134,125,5,116,0,124,5, - 116,1,116,2,102,2,131,2,115,28,113,8,124,0,160,3, - 124,5,161,1,125,6,124,6,100,1,117,1,114,142,116,4, - 124,6,100,2,131,2,114,70,124,6,160,5,124,1,124,3, - 161,2,125,7,110,12,124,0,160,6,124,1,124,6,161,2, - 125,7,124,7,100,1,117,0,114,92,113,8,124,7,106,7, - 100,1,117,1,114,110,124,7,2,0,1,0,83,0,124,7, - 106,8,125,8,124,8,100,1,117,0,114,132,116,9,100,3, - 131,1,130,1,124,4,160,10,124,8,161,1,1,0,113,8, - 116,11,160,12,124,1,100,1,161,2,125,7,124,4,124,7, - 95,8,124,7,83,0,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,214,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,172,0,0,0,114,97,0,0,0, - 218,5,98,121,116,101,115,114,73,1,0,0,114,140,0,0, - 0,114,214,0,0,0,114,74,1,0,0,114,151,0,0,0, - 114,189,0,0,0,114,129,0,0,0,114,178,0,0,0,114, - 146,0,0,0,114,194,0,0,0,41,9,114,209,0,0,0, - 114,150,0,0,0,114,58,0,0,0,114,213,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,68,1,0,0,114,198,0,0,0, - 114,152,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,218,9,95,103,101,116,95,115,112,101,99,53, - 5,0,0,115,44,0,0,0,4,5,8,1,14,1,2,1, - 10,1,8,1,10,1,14,1,12,2,8,1,2,1,10,1, - 8,1,6,1,8,1,8,1,10,5,2,128,12,2,6,1, - 4,1,255,128,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,0,0,0,0,6,0,0,0,5,0,0,0,67, - 0,0,0,115,94,0,0,0,124,2,100,1,117,0,114,14, - 116,0,106,1,125,2,124,0,160,2,124,1,124,2,124,3, - 161,3,125,4,124,4,100,1,117,0,114,40,100,1,83,0, - 124,4,106,3,100,1,117,0,114,90,124,4,106,4,125,5, - 124,5,114,86,100,1,124,4,95,5,116,6,124,1,124,5, - 124,0,106,2,131,3,124,4,95,4,124,4,83,0,100,1, - 83,0,124,4,83,0,41,2,122,141,84,114,121,32,116,111, - 32,102,105,110,100,32,97,32,115,112,101,99,32,102,111,114, - 32,39,102,117,108,108,110,97,109,101,39,32,111,110,32,115, - 121,115,46,112,97,116,104,32,111,114,32,39,112,97,116,104, - 39,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32, - 115,101,97,114,99,104,32,105,115,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,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,32, - 32,32,32,32,32,32,32,78,41,7,114,16,0,0,0,114, - 58,0,0,0,114,77,1,0,0,114,151,0,0,0,114,189, - 0,0,0,114,192,0,0,0,114,33,1,0,0,41,6,114, - 209,0,0,0,114,150,0,0,0,114,58,0,0,0,114,213, - 0,0,0,114,198,0,0,0,114,76,1,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,214,0,0, - 0,85,5,0,0,115,28,0,0,0,8,6,6,1,14,1, - 8,1,4,1,10,1,6,1,4,1,6,3,16,1,4,1, - 4,2,4,2,255,128,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,0,0,0,0,4,0,0,0,4,0,0, - 0,67,0,0,0,115,30,0,0,0,124,0,160,0,124,1, - 124,2,161,2,125,3,124,3,100,1,117,0,114,24,100,1, - 83,0,124,3,106,1,83,0,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, + 0,0,0,115,26,0,0,0,116,0,160,1,100,1,124,0, + 106,2,161,2,1,0,116,0,160,3,124,0,124,1,161,2, + 83,0,41,3,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,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,114,215,0,0,0,114,216,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,217,0,0,0,109,5,0,0,115,10,0,0,0,12,8, - 8,1,4,1,6,1,255,128,122,22,80,97,116,104,70,105, - 110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101, - 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,4,0,0,0,79,0,0,0,115,28,0,0,0,100,1, - 100,2,108,0,109,1,125,2,1,0,124,2,106,2,124,0, - 105,0,124,1,164,1,142,1,83,0,41,4,97,32,1,0, - 0,10,32,32,32,32,32,32,32,32,70,105,110,100,32,100, - 105,115,116,114,105,98,117,116,105,111,110,115,46,10,10,32, - 32,32,32,32,32,32,32,82,101,116,117,114,110,32,97,110, - 32,105,116,101,114,97,98,108,101,32,111,102,32,97,108,108, - 32,68,105,115,116,114,105,98,117,116,105,111,110,32,105,110, - 115,116,97,110,99,101,115,32,99,97,112,97,98,108,101,32, - 111,102,10,32,32,32,32,32,32,32,32,108,111,97,100,105, - 110,103,32,116,104,101,32,109,101,116,97,100,97,116,97,32, - 102,111,114,32,112,97,99,107,97,103,101,115,32,109,97,116, - 99,104,105,110,103,32,96,96,99,111,110,116,101,120,116,46, - 110,97,109,101,96,96,10,32,32,32,32,32,32,32,32,40, - 111,114,32,97,108,108,32,110,97,109,101,115,32,105,102,32, - 96,96,78,111,110,101,96,96,32,105,110,100,105,99,97,116, - 101,100,41,32,97,108,111,110,103,32,116,104,101,32,112,97, - 116,104,115,32,105,110,32,116,104,101,32,108,105,115,116,10, - 32,32,32,32,32,32,32,32,111,102,32,100,105,114,101,99, - 116,111,114,105,101,115,32,96,96,99,111,110,116,101,120,116, - 46,112,97,116,104,96,96,46,10,32,32,32,32,32,32,32, - 32,114,0,0,0,0,41,1,218,18,77,101,116,97,100,97, - 116,97,80,97,116,104,70,105,110,100,101,114,78,41,3,90, - 18,105,109,112,111,114,116,108,105,98,46,109,101,116,97,100, - 97,116,97,114,78,1,0,0,218,18,102,105,110,100,95,100, - 105,115,116,114,105,98,117,116,105,111,110,115,41,3,114,131, - 0,0,0,114,132,0,0,0,114,78,1,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,79,1,0, - 0,122,5,0,0,115,6,0,0,0,12,10,16,1,255,128, - 122,29,80,97,116,104,70,105,110,100,101,114,46,102,105,110, - 100,95,100,105,115,116,114,105,98,117,116,105,111,110,115,41, - 1,78,41,2,78,78,41,1,78,41,14,114,137,0,0,0, - 114,136,0,0,0,114,138,0,0,0,114,139,0,0,0,114, - 220,0,0,0,114,64,1,0,0,114,70,1,0,0,114,221, - 0,0,0,114,73,1,0,0,114,74,1,0,0,114,77,1, - 0,0,114,214,0,0,0,114,217,0,0,0,114,79,1,0, - 0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,63,1,0,0,245,4,0,0,115,38, - 0,0,0,8,0,4,2,2,2,10,1,2,9,10,1,2, - 12,10,1,2,21,10,1,2,14,12,1,2,31,12,1,2, - 23,12,1,2,12,14,1,255,128,114,63,1,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,64,0,0,0,115,90,0,0,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,100,3,132,0,90,4, - 100,4,100,5,132,0,90,5,101,6,90,7,100,6,100,7, - 132,0,90,8,100,8,100,9,132,0,90,9,100,19,100,11, - 100,12,132,1,90,10,100,13,100,14,132,0,90,11,101,12, - 100,15,100,16,132,0,131,1,90,13,100,17,100,18,132,0, - 90,14,100,10,83,0,41,20,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,0,0,0,0,5, - 0,0,0,6,0,0,0,7,0,0,0,115,84,0,0,0, - 103,0,125,3,124,2,68,0,93,32,92,2,137,0,125,4, - 124,3,160,0,135,0,102,1,100,1,100,2,132,8,124,4, - 68,0,131,1,161,1,1,0,113,8,124,3,124,0,95,1, - 124,1,112,54,100,3,124,0,95,2,100,4,124,0,95,3, - 116,4,131,0,124,0,95,5,116,4,131,0,124,0,95,6, - 100,5,83,0,41,6,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,0,0,0,0,2, - 0,0,0,3,0,0,0,51,0,0,0,115,22,0,0,0, - 124,0,93,14,125,1,124,1,136,0,102,2,86,0,1,0, - 113,2,100,0,83,0,114,121,0,0,0,114,7,0,0,0, - 114,29,1,0,0,169,1,114,151,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,9,0,0,0,151,5,0,0,114, - 14,0,0,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,86,0,0, - 0,114,116,0,0,0,78,41,7,114,178,0,0,0,218,8, - 95,108,111,97,100,101,114,115,114,58,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,130,0,0,0,114,58,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,200,0,0,0,114,7,0,0,0, - 114,81,1,0,0,114,8,0,0,0,114,223,0,0,0,145, - 5,0,0,115,18,0,0,0,4,4,12,1,26,1,6,1, - 10,2,6,1,8,1,12,1,255,128,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,0,0,0,0,1,0,0,0, - 2,0,0,0,67,0,0,0,115,10,0,0,0,100,1,124, - 0,95,0,100,2,83,0,41,3,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,116,0,0,0,78, - 41,1,114,83,1,0,0,114,8,1,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,64,1,0,0, - 159,5,0,0,114,69,0,0,0,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, - 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0, - 115,42,0,0,0,124,0,160,0,124,1,161,1,125,2,124, - 2,100,1,117,0,114,26,100,1,103,0,102,2,83,0,124, - 2,106,1,124,2,106,2,112,38,103,0,102,2,83,0,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,214,0,0,0, - 114,151,0,0,0,114,189,0,0,0,41,3,114,130,0,0, - 0,114,150,0,0,0,114,198,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,148,0,0,0,165, - 5,0,0,115,10,0,0,0,10,7,8,1,8,1,16,1, - 255,128,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,0,0,0,0,7,0,0,0,6,0,0,0,67, - 0,0,0,115,26,0,0,0,124,1,124,2,124,3,131,2, - 125,6,116,0,124,2,124,3,124,6,124,4,100,1,141,4, - 83,0,41,2,78,114,188,0,0,0,41,1,114,201,0,0, - 0,41,7,114,130,0,0,0,114,199,0,0,0,114,150,0, - 0,0,114,58,0,0,0,90,4,115,109,115,108,114,213,0, - 0,0,114,151,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,77,1,0,0,177,5,0,0,115, - 10,0,0,0,10,1,8,1,2,1,6,255,255,128,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,0,0, - 0,0,14,0,0,0,8,0,0,0,67,0,0,0,115,100, - 1,0,0,100,1,125,3,124,1,160,0,100,2,161,1,100, - 3,25,0,125,4,122,24,116,1,124,0,106,2,112,34,116, - 3,160,4,161,0,131,1,106,5,125,5,87,0,110,20,4, - 0,116,6,144,1,121,98,1,0,1,0,1,0,100,4,125, - 5,89,0,124,5,124,0,106,7,107,3,114,88,124,0,160, - 8,161,0,1,0,124,5,124,0,95,7,116,9,131,0,114, - 110,124,0,106,10,125,6,124,4,160,11,161,0,125,7,110, - 10,124,0,106,12,125,6,124,4,125,7,124,7,124,6,118, - 0,114,214,116,13,124,0,106,2,124,4,131,2,125,8,124, - 0,106,14,68,0,93,58,92,2,125,9,125,10,100,5,124, - 9,23,0,125,11,116,13,124,8,124,11,131,2,125,12,116, - 15,124,12,131,1,114,204,124,0,160,16,124,10,124,1,124, - 12,124,8,103,1,124,2,161,5,2,0,1,0,83,0,113, - 146,116,17,124,8,131,1,125,3,124,0,106,14,68,0,93, - 86,92,2,125,9,125,10,116,13,124,0,106,2,124,4,124, - 9,23,0,131,2,125,12,116,18,106,19,100,6,124,12,100, - 3,100,7,141,3,1,0,124,7,124,9,23,0,124,6,118, - 0,144,1,114,50,116,15,124,12,131,1,144,1,114,50,124, - 0,160,16,124,10,124,1,124,12,100,8,124,2,161,5,2, - 0,1,0,83,0,113,220,124,3,144,1,114,94,116,18,160, - 19,100,9,124,8,161,2,1,0,116,18,160,20,124,1,100, - 8,161,2,125,13,124,8,103,1,124,13,95,21,124,13,83, - 0,100,8,83,0,119,0,41,10,122,111,84,114,121,32,116, - 111,32,102,105,110,100,32,97,32,115,112,101,99,32,102,111, + 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, + 78,41,4,114,146,0,0,0,114,160,0,0,0,114,35,1, + 0,0,114,233,0,0,0,114,234,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,235,0,0,0, + 227,4,0,0,115,10,0,0,0,6,7,4,1,4,255,12, + 3,255,128,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,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,2,0,0,0,67,0,0,0,115,22,0,0,0,100, + 1,100,2,108,0,109,1,125,2,1,0,124,2,124,0,106, + 2,131,1,83,0,41,3,78,114,0,0,0,0,41,1,218, + 15,78,97,109,101,115,112,97,99,101,82,101,97,100,101,114, + 41,3,114,19,1,0,0,114,62,1,0,0,114,35,1,0, + 0,41,3,114,130,0,0,0,114,231,0,0,0,114,62,1, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,20,1,0,0,239,4,0,0,115,6,0,0,0,12, + 1,10,1,255,128,122,36,95,78,97,109,101,115,112,97,99, + 101,76,111,97,100,101,114,46,103,101,116,95,114,101,115,111, + 117,114,99,101,95,114,101,97,100,101,114,78,41,13,114,137, + 0,0,0,114,136,0,0,0,114,138,0,0,0,114,223,0, + 0,0,114,220,0,0,0,114,60,1,0,0,114,193,0,0, + 0,114,244,0,0,0,114,228,0,0,0,114,226,0,0,0, + 114,232,0,0,0,114,235,0,0,0,114,20,1,0,0,114, + 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,59,1,0,0,199,4,0,0,115,24,0,0, + 0,8,0,8,1,2,3,10,1,8,8,8,3,8,3,8, + 3,8,3,8,3,12,12,255,128,114,59,1,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,64,0,0,0,115,118,0,0,0,101,0,90,1, + 100,0,90,2,100,1,90,3,101,4,100,2,100,3,132,0, + 131,1,90,5,101,4,100,4,100,5,132,0,131,1,90,6, + 101,7,100,6,100,7,132,0,131,1,90,8,101,7,100,8, + 100,9,132,0,131,1,90,9,101,7,100,19,100,11,100,12, + 132,1,131,1,90,10,101,7,100,20,100,13,100,14,132,1, + 131,1,90,11,101,7,100,21,100,15,100,16,132,1,131,1, + 90,12,101,4,100,17,100,18,132,0,131,1,90,13,100,10, + 83,0,41,22,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,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,0, + 116,1,106,2,160,3,161,0,131,1,68,0,93,44,92,2, + 125,0,125,1,124,1,100,1,117,0,114,40,116,1,106,2, + 124,0,61,0,113,14,116,4,124,1,100,2,131,2,114,58, + 124,1,160,5,161,0,1,0,113,14,100,1,83,0,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,78, + 218,17,105,110,118,97,108,105,100,97,116,101,95,99,97,99, + 104,101,115,41,6,218,4,108,105,115,116,114,16,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,5,105,116,101,109,115,114,140,0,0, + 0,114,64,1,0,0,41,2,114,128,0,0,0,218,6,102, + 105,110,100,101,114,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,64,1,0,0,250,4,0,0,115,16,0, + 0,0,22,4,8,1,10,1,10,1,8,1,2,128,4,252, + 255,128,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,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,9,0,0,0,67,0,0,0,115,76,0,0,0,116,0, + 106,1,100,1,117,1,114,28,116,0,106,1,115,28,116,2, + 160,3,100,2,116,4,161,2,1,0,116,0,106,1,68,0, + 93,34,125,1,122,14,124,1,124,0,131,1,87,0,2,0, + 1,0,83,0,4,0,116,5,121,74,1,0,1,0,1,0, + 89,0,113,34,100,1,83,0,119,0,41,3,122,46,83,101, + 97,114,99,104,32,115,121,115,46,112,97,116,104,95,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,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,16,0,0,0,218,10,112, + 97,116,104,95,104,111,111,107,115,114,88,0,0,0,114,89, + 0,0,0,114,149,0,0,0,114,129,0,0,0,41,2,114, + 58,0,0,0,90,4,104,111,111,107,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,218,11,95,112,97,116,104, + 95,104,111,111,107,115,4,5,0,0,115,20,0,0,0,16, + 3,12,1,10,1,2,1,14,1,12,1,4,1,4,2,2, + 253,255,128,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,0,0,0,0,3,0,0,0,8,0,0,0, + 67,0,0,0,115,100,0,0,0,124,1,100,1,107,2,114, + 40,122,12,116,0,160,1,161,0,125,1,87,0,110,18,4, + 0,116,2,121,98,1,0,1,0,1,0,89,0,100,2,83, + 0,122,16,116,3,106,4,124,1,25,0,125,2,87,0,124, + 2,83,0,4,0,116,5,121,96,1,0,1,0,1,0,124, + 0,160,6,124,1,161,1,125,2,124,2,116,3,106,4,124, + 1,60,0,89,0,124,2,83,0,119,0,119,0,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,10,0,0,0,78,41,7,114,19,0,0,0, + 114,70,0,0,0,218,17,70,105,108,101,78,111,116,70,111, + 117,110,100,69,114,114,111,114,114,16,0,0,0,114,66,1, + 0,0,218,8,75,101,121,69,114,114,111,114,114,70,1,0, + 0,41,3,114,209,0,0,0,114,58,0,0,0,114,68,1, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,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,17,5,0,0,115,30,0,0,0, + 8,8,2,1,12,1,12,1,6,3,2,1,12,1,4,4, + 12,253,10,1,12,1,4,1,2,253,2,250,255,128,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,0,0,0,0,6,0,0,0, + 4,0,0,0,67,0,0,0,115,82,0,0,0,116,0,124, + 2,100,1,131,2,114,26,124,2,160,1,124,1,161,1,92, + 2,125,3,125,4,110,14,124,2,160,2,124,1,161,1,125, + 3,103,0,125,4,124,3,100,0,117,1,114,60,116,3,160, + 4,124,1,124,3,161,2,83,0,116,3,160,5,124,1,100, + 0,161,2,125,5,124,4,124,5,95,6,124,5,83,0,41, + 2,78,114,148,0,0,0,41,7,114,140,0,0,0,114,148, + 0,0,0,114,217,0,0,0,114,146,0,0,0,114,212,0, + 0,0,114,194,0,0,0,114,189,0,0,0,41,6,114,209, + 0,0,0,114,150,0,0,0,114,68,1,0,0,114,151,0, + 0,0,114,152,0,0,0,114,198,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,16,95,108,101, + 103,97,99,121,95,103,101,116,95,115,112,101,99,39,5,0, + 0,115,20,0,0,0,10,4,16,1,10,2,4,1,8,1, + 12,1,12,1,6,1,4,1,255,128,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,0,0,0,0,9,0,0,0,5,0,0,0,67,0,0, + 0,115,166,0,0,0,103,0,125,4,124,2,68,0,93,134, + 125,5,116,0,124,5,116,1,116,2,102,2,131,2,115,28, + 113,8,124,0,160,3,124,5,161,1,125,6,124,6,100,1, + 117,1,114,142,116,4,124,6,100,2,131,2,114,70,124,6, + 160,5,124,1,124,3,161,2,125,7,110,12,124,0,160,6, + 124,1,124,6,161,2,125,7,124,7,100,1,117,0,114,92, + 113,8,124,7,106,7,100,1,117,1,114,110,124,7,2,0, + 1,0,83,0,124,7,106,8,125,8,124,8,100,1,117,0, + 114,132,116,9,100,3,131,1,130,1,124,4,160,10,124,8, + 161,1,1,0,113,8,116,11,160,12,124,1,100,1,161,2, + 125,7,124,4,124,7,95,8,124,7,83,0,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,214,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,172,0,0, + 0,114,97,0,0,0,218,5,98,121,116,101,115,114,73,1, + 0,0,114,140,0,0,0,114,214,0,0,0,114,74,1,0, + 0,114,151,0,0,0,114,189,0,0,0,114,129,0,0,0, + 114,178,0,0,0,114,146,0,0,0,114,194,0,0,0,41, + 9,114,209,0,0,0,114,150,0,0,0,114,58,0,0,0, + 114,213,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,68,1,0, + 0,114,198,0,0,0,114,152,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,218,9,95,103,101,116, + 95,115,112,101,99,54,5,0,0,115,44,0,0,0,4,5, + 8,1,14,1,2,1,10,1,8,1,10,1,14,1,12,2, + 8,1,2,1,10,1,8,1,6,1,8,1,8,1,10,5, + 2,128,12,2,6,1,4,1,255,128,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,0,0,0,0,6,0,0, + 0,5,0,0,0,67,0,0,0,115,94,0,0,0,124,2, + 100,1,117,0,114,14,116,0,106,1,125,2,124,0,160,2, + 124,1,124,2,124,3,161,3,125,4,124,4,100,1,117,0, + 114,40,100,1,83,0,124,4,106,3,100,1,117,0,114,90, + 124,4,106,4,125,5,124,5,114,86,100,1,124,4,95,5, + 116,6,124,1,124,5,124,0,106,2,131,3,124,4,95,4, + 124,4,83,0,100,1,83,0,124,4,83,0,41,2,122,141, + 84,114,121,32,116,111,32,102,105,110,100,32,97,32,115,112, + 101,99,32,102,111,114,32,39,102,117,108,108,110,97,109,101, + 39,32,111,110,32,115,121,115,46,112,97,116,104,32,111,114, + 32,39,112,97,116,104,39,46,10,10,32,32,32,32,32,32, + 32,32,84,104,101,32,115,101,97,114,99,104,32,105,115,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,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,32,32,32,32,32,32,32,32,78,41,7, + 114,16,0,0,0,114,58,0,0,0,114,77,1,0,0,114, + 151,0,0,0,114,189,0,0,0,114,192,0,0,0,114,33, + 1,0,0,41,6,114,209,0,0,0,114,150,0,0,0,114, + 58,0,0,0,114,213,0,0,0,114,198,0,0,0,114,76, + 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,214,0,0,0,86,5,0,0,115,28,0,0,0, + 8,6,6,1,14,1,8,1,4,1,10,1,6,1,4,1, + 6,3,16,1,4,1,4,2,4,2,255,128,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,0,0,0,0,4, + 0,0,0,4,0,0,0,67,0,0,0,115,30,0,0,0, + 124,0,160,0,124,1,124,2,161,2,125,3,124,3,100,1, + 117,0,114,24,100,1,83,0,124,3,106,1,83,0,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,114,215,0, + 0,0,114,216,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,217,0,0,0,110,5,0,0,115, + 10,0,0,0,12,8,8,1,4,1,6,1,255,128,122,22, + 80,97,116,104,70,105,110,100,101,114,46,102,105,110,100,95, + 109,111,100,117,108,101,99,0,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,4,0,0,0,79,0,0,0,115, + 28,0,0,0,100,1,100,2,108,0,109,1,125,2,1,0, + 124,2,106,2,124,0,105,0,124,1,164,1,142,1,83,0, + 41,4,97,32,1,0,0,10,32,32,32,32,32,32,32,32, + 70,105,110,100,32,100,105,115,116,114,105,98,117,116,105,111, + 110,115,46,10,10,32,32,32,32,32,32,32,32,82,101,116, + 117,114,110,32,97,110,32,105,116,101,114,97,98,108,101,32, + 111,102,32,97,108,108,32,68,105,115,116,114,105,98,117,116, + 105,111,110,32,105,110,115,116,97,110,99,101,115,32,99,97, + 112,97,98,108,101,32,111,102,10,32,32,32,32,32,32,32, + 32,108,111,97,100,105,110,103,32,116,104,101,32,109,101,116, + 97,100,97,116,97,32,102,111,114,32,112,97,99,107,97,103, + 101,115,32,109,97,116,99,104,105,110,103,32,96,96,99,111, + 110,116,101,120,116,46,110,97,109,101,96,96,10,32,32,32, + 32,32,32,32,32,40,111,114,32,97,108,108,32,110,97,109, + 101,115,32,105,102,32,96,96,78,111,110,101,96,96,32,105, + 110,100,105,99,97,116,101,100,41,32,97,108,111,110,103,32, + 116,104,101,32,112,97,116,104,115,32,105,110,32,116,104,101, + 32,108,105,115,116,10,32,32,32,32,32,32,32,32,111,102, + 32,100,105,114,101,99,116,111,114,105,101,115,32,96,96,99, + 111,110,116,101,120,116,46,112,97,116,104,96,96,46,10,32, + 32,32,32,32,32,32,32,114,0,0,0,0,41,1,218,18, + 77,101,116,97,100,97,116,97,80,97,116,104,70,105,110,100, + 101,114,78,41,3,90,18,105,109,112,111,114,116,108,105,98, + 46,109,101,116,97,100,97,116,97,114,78,1,0,0,218,18, + 102,105,110,100,95,100,105,115,116,114,105,98,117,116,105,111, + 110,115,41,3,114,131,0,0,0,114,132,0,0,0,114,78, + 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,79,1,0,0,123,5,0,0,115,6,0,0,0, + 12,10,16,1,255,128,122,29,80,97,116,104,70,105,110,100, + 101,114,46,102,105,110,100,95,100,105,115,116,114,105,98,117, + 116,105,111,110,115,41,1,78,41,2,78,78,41,1,78,41, + 14,114,137,0,0,0,114,136,0,0,0,114,138,0,0,0, + 114,139,0,0,0,114,220,0,0,0,114,64,1,0,0,114, + 70,1,0,0,114,221,0,0,0,114,73,1,0,0,114,74, + 1,0,0,114,77,1,0,0,114,214,0,0,0,114,217,0, + 0,0,114,79,1,0,0,114,7,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,63,1,0,0, + 246,4,0,0,115,38,0,0,0,8,0,4,2,2,2,10, + 1,2,9,10,1,2,12,10,1,2,21,10,1,2,14,12, + 1,2,31,12,1,2,23,12,1,2,12,14,1,255,128,114, + 63,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,64,0,0,0,115,90,0, + 0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2, + 100,3,132,0,90,4,100,4,100,5,132,0,90,5,101,6, + 90,7,100,6,100,7,132,0,90,8,100,8,100,9,132,0, + 90,9,100,19,100,11,100,12,132,1,90,10,100,13,100,14, + 132,0,90,11,101,12,100,15,100,16,132,0,131,1,90,13, + 100,17,100,18,132,0,90,14,100,10,83,0,41,20,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,0,0,0,0,5,0,0,0,6,0,0,0,7,0,0, + 0,115,84,0,0,0,103,0,125,3,124,2,68,0,93,32, + 92,2,137,0,125,4,124,3,160,0,135,0,102,1,100,1, + 100,2,132,8,124,4,68,0,131,1,161,1,1,0,113,8, + 124,3,124,0,95,1,124,1,112,54,100,3,124,0,95,2, + 100,4,124,0,95,3,116,4,131,0,124,0,95,5,116,4, + 131,0,124,0,95,6,100,5,83,0,41,6,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,0,0,0,0,2,0,0,0,3,0,0,0,51,0,0, + 0,115,22,0,0,0,124,0,93,14,125,1,124,1,136,0, + 102,2,86,0,1,0,113,2,100,0,83,0,114,121,0,0, + 0,114,7,0,0,0,114,29,1,0,0,169,1,114,151,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,0, + 0,152,5,0,0,114,14,0,0,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,86,0,0,0,114,116,0,0,0,78,41,7,114, + 178,0,0,0,218,8,95,108,111,97,100,101,114,115,114,58, + 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,130,0,0,0,114,58, + 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,200,0,0, + 0,114,7,0,0,0,114,81,1,0,0,114,8,0,0,0, + 114,223,0,0,0,146,5,0,0,115,18,0,0,0,4,4, + 12,1,26,1,6,1,10,2,6,1,8,1,12,1,255,128, + 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,0,0, + 0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,10, + 0,0,0,100,1,124,0,95,0,100,2,83,0,41,3,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,116,0,0,0,78,41,1,114,83,1,0,0,114,8,1, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,64,1,0,0,160,5,0,0,114,69,0,0,0,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,0,0,0,0,3,0,0,0,3,0, + 0,0,67,0,0,0,115,42,0,0,0,124,0,160,0,124, + 1,161,1,125,2,124,2,100,1,117,0,114,26,100,1,103, + 0,102,2,83,0,124,2,106,1,124,2,106,2,112,38,103, + 0,102,2,83,0,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,46,10,10,32,32,32,32,32,32,32, - 32,82,101,116,117,114,110,115,32,116,104,101,32,109,97,116, - 99,104,105,110,103,32,115,112,101,99,44,32,111,114,32,78, - 111,110,101,32,105,102,32,110,111,116,32,102,111,117,110,100, - 46,10,32,32,32,32,32,32,32,32,70,114,86,0,0,0, - 114,45,0,0,0,114,116,0,0,0,114,223,0,0,0,122, - 9,116,114,121,105,110,103,32,123,125,41,1,90,9,118,101, - 114,98,111,115,105,116,121,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,41,22,114,55,0,0,0,114,63,0,0,0,114, - 58,0,0,0,114,19,0,0,0,114,70,0,0,0,114,22, - 1,0,0,114,64,0,0,0,114,83,1,0,0,218,11,95, - 102,105,108,108,95,99,97,99,104,101,114,22,0,0,0,114, - 86,1,0,0,114,117,0,0,0,114,85,1,0,0,114,54, - 0,0,0,114,82,1,0,0,114,68,0,0,0,114,77,1, - 0,0,114,71,0,0,0,114,146,0,0,0,114,160,0,0, - 0,114,194,0,0,0,114,189,0,0,0,41,14,114,130,0, - 0,0,114,150,0,0,0,114,213,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,180,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,30,1,0, - 0,114,199,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,198,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,214,0,0,0,182,5,0,0,115,80,0, - 0,0,4,5,14,1,2,1,24,1,14,1,6,1,10,1, - 8,1,6,1,6,2,6,1,10,1,6,2,4,1,8,2, - 12,1,14,1,8,1,10,1,8,1,24,1,2,255,8,5, - 14,2,16,1,16,1,14,1,10,1,10,1,4,1,8,255, - 2,128,6,2,12,1,12,1,8,1,4,1,4,1,2,219, - 255,128,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,0,0,0,0,9,0,0,0,10,0,0,0,67,0,0, - 0,115,190,0,0,0,124,0,106,0,125,1,122,22,116,1, - 160,2,124,1,112,22,116,1,160,3,161,0,161,1,125,2, - 87,0,110,24,4,0,116,4,116,5,116,6,102,3,121,188, - 1,0,1,0,1,0,103,0,125,2,89,0,116,7,106,8, - 160,9,100,1,161,1,115,78,116,10,124,2,131,1,124,0, - 95,11,110,74,116,10,131,0,125,3,124,2,68,0,93,56, - 125,4,124,4,160,12,100,2,161,1,92,3,125,5,125,6, - 125,7,124,6,114,130,100,3,160,13,124,5,124,7,160,14, - 161,0,161,2,125,8,110,4,124,5,125,8,124,3,160,15, - 124,8,161,1,1,0,113,88,124,3,124,0,95,11,116,7, - 106,8,160,9,116,16,161,1,114,184,100,4,100,5,132,0, - 124,2,68,0,131,1,124,0,95,17,100,6,83,0,100,6, - 83,0,119,0,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,15,0,0, - 0,114,86,0,0,0,114,76,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0, - 83,0,0,0,115,20,0,0,0,104,0,124,0,93,12,125, - 1,124,1,160,0,161,0,146,2,113,4,83,0,114,7,0, - 0,0,41,1,114,117,0,0,0,41,2,114,5,0,0,0, - 90,2,102,110,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,13,0,0,0,3,6,0,0,115,4,0,0, - 0,20,0,255,128,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,58,0,0,0,114,19,0,0,0,90,7,108, - 105,115,116,100,105,114,114,70,0,0,0,114,71,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,16,0,0,0,114,26,0,0,0,114, - 27,0,0,0,114,84,1,0,0,114,85,1,0,0,114,112, - 0,0,0,114,77,0,0,0,114,117,0,0,0,218,3,97, - 100,100,114,28,0,0,0,114,86,1,0,0,41,9,114,130, - 0,0,0,114,58,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,56,1,0,0,114,128, - 0,0,0,114,40,1,0,0,114,30,1,0,0,90,8,110, - 101,119,95,110,97,109,101,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,88,1,0,0,230,5,0,0,115, - 40,0,0,0,6,2,2,1,22,1,18,1,6,3,12,3, - 12,1,6,7,8,1,16,1,4,1,18,1,4,2,12,1, - 6,1,12,1,20,1,4,255,2,233,255,128,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,0,0,0, - 0,3,0,0,0,3,0,0,0,7,0,0,0,115,18,0, - 0,0,135,0,135,1,102,2,100,1,100,2,132,8,125,2, - 124,2,83,0,41,4,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,0,0,0,0,1,0,0,0, - 4,0,0,0,19,0,0,0,115,36,0,0,0,116,0,124, - 0,131,1,115,20,116,1,100,1,124,0,100,2,141,2,130, - 1,136,0,124,0,103,1,136,1,162,1,82,0,142,0,83, - 0,41,4,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,62,0,0,0,78,41,2,114,71,0,0,0,114, - 129,0,0,0,114,62,0,0,0,169,2,114,209,0,0,0, - 114,87,1,0,0,114,7,0,0,0,114,8,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,15,6,0,0,115,8,0, - 0,0,8,2,12,1,16,1,255,128,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,78,114,7,0,0,0,41,3,114,209,0,0,0,114, - 87,1,0,0,114,93,1,0,0,114,7,0,0,0,114,92, - 1,0,0,114,8,0,0,0,218,9,112,97,116,104,95,104, - 111,111,107,5,6,0,0,115,6,0,0,0,14,10,4,6, - 255,128,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,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0, - 0,114,53,1,0,0,41,2,78,122,16,70,105,108,101,70, - 105,110,100,101,114,40,123,33,114,125,41,41,2,114,77,0, - 0,0,114,58,0,0,0,114,8,1,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,54,1,0,0, - 23,6,0,0,114,47,1,0,0,122,19,70,105,108,101,70, - 105,110,100,101,114,46,95,95,114,101,112,114,95,95,41,1, - 78,41,15,114,137,0,0,0,114,136,0,0,0,114,138,0, - 0,0,114,139,0,0,0,114,223,0,0,0,114,64,1,0, - 0,114,154,0,0,0,114,217,0,0,0,114,148,0,0,0, - 114,77,1,0,0,114,214,0,0,0,114,88,1,0,0,114, - 221,0,0,0,114,94,1,0,0,114,54,1,0,0,114,7, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,80,1,0,0,136,5,0,0,115,26,0,0,0, - 8,0,4,2,8,7,8,14,4,4,8,2,8,12,10,5, - 8,48,2,31,10,1,12,17,255,128,114,80,1,0,0,99, - 4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 8,0,0,0,67,0,0,0,115,144,0,0,0,124,0,160, - 0,100,1,161,1,125,4,124,0,160,0,100,2,161,1,125, - 5,124,4,115,66,124,5,114,36,124,5,106,1,125,4,110, - 30,124,2,124,3,107,2,114,56,116,2,124,1,124,2,131, - 2,125,4,110,10,116,3,124,1,124,2,131,2,125,4,124, - 5,115,84,116,4,124,1,124,2,124,4,100,3,141,3,125, - 5,122,38,124,5,124,0,100,2,60,0,124,4,124,0,100, - 1,60,0,124,2,124,0,100,4,60,0,124,3,124,0,100, - 5,60,0,87,0,100,0,83,0,4,0,116,5,121,142,1, - 0,1,0,1,0,89,0,100,0,83,0,119,0,41,6,78, - 218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95, - 115,112,101,99,95,95,114,81,1,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,151,0,0,0,114,27,1, - 0,0,114,21,1,0,0,114,201,0,0,0,218,9,69,120, - 99,101,112,116,105,111,110,41,6,90,2,110,115,114,128,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,151,0,0,0,114,198,0,0, + 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,214,0,0,0,114,151,0,0,0,114,189,0,0,0, + 41,3,114,130,0,0,0,114,150,0,0,0,114,198,0,0, 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, - 29,6,0,0,115,38,0,0,0,10,2,10,1,4,1,4, - 1,8,1,8,1,12,1,10,2,4,1,14,1,2,1,8, - 1,8,1,8,1,14,1,12,1,6,2,2,254,255,128,114, - 99,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,67,0,0,0,115,38,0, - 0,0,116,0,116,1,160,2,161,0,102,2,125,0,116,3, - 116,4,102,2,125,1,116,5,116,6,102,2,125,2,124,0, - 124,1,124,2,103,3,83,0,41,2,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,78,41,7,114,17, - 1,0,0,114,174,0,0,0,218,18,101,120,116,101,110,115, - 105,111,110,95,115,117,102,102,105,120,101,115,114,21,1,0, - 0,114,113,0,0,0,114,27,1,0,0,114,101,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,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 195,0,0,0,52,6,0,0,115,10,0,0,0,12,5,8, - 1,8,1,10,1,255,128,114,195,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0, - 0,67,0,0,0,115,8,0,0,0,124,0,97,0,100,0, - 83,0,114,121,0,0,0,41,1,114,146,0,0,0,41,1, - 218,17,95,98,111,111,116,115,116,114,97,112,95,109,111,100, - 117,108,101,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,21,95,115,101,116,95,98,111,111,116,115,116,114, - 97,112,95,109,111,100,117,108,101,63,6,0,0,115,4,0, - 0,0,8,2,255,128,114,102,1,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0, - 67,0,0,0,115,50,0,0,0,116,0,124,0,131,1,1, - 0,116,1,131,0,125,1,116,2,106,3,160,4,116,5,106, - 6,124,1,142,0,103,1,161,1,1,0,116,2,106,7,160, - 8,116,9,161,1,1,0,100,1,83,0,41,2,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,78,41,10,114,102,1,0,0, - 114,195,0,0,0,114,16,0,0,0,114,69,1,0,0,114, - 178,0,0,0,114,80,1,0,0,114,94,1,0,0,218,9, - 109,101,116,97,95,112,97,116,104,114,197,0,0,0,114,63, - 1,0,0,41,2,114,101,1,0,0,90,17,115,117,112,112, - 111,114,116,101,100,95,108,111,97,100,101,114,115,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,218,8,95,105, - 110,115,116,97,108,108,68,6,0,0,115,10,0,0,0,8, - 2,6,1,20,1,16,1,255,128,114,104,1,0,0,41,1, - 114,75,0,0,0,41,1,78,41,3,78,78,78,41,2,114, - 0,0,0,0,114,0,0,0,0,41,1,84,41,1,78,41, - 1,78,41,83,114,139,0,0,0,114,146,0,0,0,114,174, - 0,0,0,114,79,0,0,0,114,16,0,0,0,114,88,0, - 0,0,114,171,0,0,0,114,26,0,0,0,114,218,0,0, - 0,90,2,110,116,114,19,0,0,0,114,203,0,0,0,90, - 5,112,111,115,105,120,114,48,0,0,0,218,3,97,108,108, - 114,51,0,0,0,114,52,0,0,0,114,73,0,0,0,114, - 29,0,0,0,90,37,95,67,65,83,69,95,73,78,83,69, - 78,83,73,84,73,86,69,95,80,76,65,84,70,79,82,77, - 83,95,66,89,84,69,83,95,75,69,89,114,28,0,0,0, - 114,30,0,0,0,114,22,0,0,0,114,37,0,0,0,114, - 43,0,0,0,114,46,0,0,0,114,54,0,0,0,114,61, - 0,0,0,114,63,0,0,0,114,67,0,0,0,114,68,0, - 0,0,114,71,0,0,0,114,74,0,0,0,114,84,0,0, - 0,218,4,116,121,112,101,218,8,95,95,99,111,100,101,95, - 95,114,173,0,0,0,114,35,0,0,0,114,159,0,0,0, - 114,34,0,0,0,114,40,0,0,0,114,251,0,0,0,114, - 104,0,0,0,114,100,0,0,0,114,113,0,0,0,114,197, - 0,0,0,114,100,1,0,0,114,219,0,0,0,114,101,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,109,0,0,0,114,114,0, - 0,0,114,120,0,0,0,114,124,0,0,0,114,126,0,0, - 0,114,147,0,0,0,114,154,0,0,0,114,163,0,0,0, - 114,167,0,0,0,114,169,0,0,0,114,176,0,0,0,114, - 181,0,0,0,114,182,0,0,0,114,187,0,0,0,218,6, - 111,98,106,101,99,116,114,196,0,0,0,114,201,0,0,0, - 114,202,0,0,0,114,222,0,0,0,114,236,0,0,0,114, - 254,0,0,0,114,21,1,0,0,114,27,1,0,0,114,17, - 1,0,0,114,33,1,0,0,114,59,1,0,0,114,63,1, - 0,0,114,80,1,0,0,114,99,1,0,0,114,195,0,0, - 0,114,102,1,0,0,114,104,1,0,0,114,7,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 8,60,109,111,100,117,108,101,62,1,0,0,0,115,172,0, - 0,0,4,0,4,22,8,3,8,1,8,1,8,1,8,1, - 10,3,4,1,8,1,10,1,8,2,4,3,10,1,6,2, - 22,2,8,1,10,1,14,1,4,4,4,1,2,1,2,1, - 4,255,8,4,6,16,8,3,8,5,8,5,8,6,8,6, - 8,12,8,10,8,9,8,5,8,7,10,9,10,22,0,127, - 16,25,12,1,4,2,4,1,6,2,6,1,10,1,8,2, - 6,2,8,2,16,2,8,71,8,40,8,19,8,12,8,12, - 8,31,8,17,8,33,8,28,10,24,10,13,10,10,8,11, - 6,14,4,3,2,1,12,255,14,68,14,64,16,30,0,127, - 14,17,18,50,18,45,18,25,14,53,14,63,14,47,0,127, - 14,20,0,127,10,22,8,23,8,11,12,5,255,128, + 114,148,0,0,0,166,5,0,0,115,10,0,0,0,10,7, + 8,1,8,1,16,1,255,128,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,0,0,0,0,7,0,0, + 0,6,0,0,0,67,0,0,0,115,26,0,0,0,124,1, + 124,2,124,3,131,2,125,6,116,0,124,2,124,3,124,6, + 124,4,100,1,141,4,83,0,41,2,78,114,188,0,0,0, + 41,1,114,201,0,0,0,41,7,114,130,0,0,0,114,199, + 0,0,0,114,150,0,0,0,114,58,0,0,0,90,4,115, + 109,115,108,114,213,0,0,0,114,151,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,77,1,0, + 0,178,5,0,0,115,10,0,0,0,10,1,8,1,2,1, + 6,255,255,128,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,0,0,0,0,14,0,0,0,8,0,0,0, + 67,0,0,0,115,100,1,0,0,100,1,125,3,124,1,160, + 0,100,2,161,1,100,3,25,0,125,4,122,24,116,1,124, + 0,106,2,112,34,116,3,160,4,161,0,131,1,106,5,125, + 5,87,0,110,20,4,0,116,6,144,1,121,98,1,0,1, + 0,1,0,100,4,125,5,89,0,124,5,124,0,106,7,107, + 3,114,88,124,0,160,8,161,0,1,0,124,5,124,0,95, + 7,116,9,131,0,114,110,124,0,106,10,125,6,124,4,160, + 11,161,0,125,7,110,10,124,0,106,12,125,6,124,4,125, + 7,124,7,124,6,118,0,114,214,116,13,124,0,106,2,124, + 4,131,2,125,8,124,0,106,14,68,0,93,58,92,2,125, + 9,125,10,100,5,124,9,23,0,125,11,116,13,124,8,124, + 11,131,2,125,12,116,15,124,12,131,1,114,204,124,0,160, + 16,124,10,124,1,124,12,124,8,103,1,124,2,161,5,2, + 0,1,0,83,0,113,146,116,17,124,8,131,1,125,3,124, + 0,106,14,68,0,93,86,92,2,125,9,125,10,116,13,124, + 0,106,2,124,4,124,9,23,0,131,2,125,12,116,18,106, + 19,100,6,124,12,100,3,100,7,141,3,1,0,124,7,124, + 9,23,0,124,6,118,0,144,1,114,50,116,15,124,12,131, + 1,144,1,114,50,124,0,160,16,124,10,124,1,124,12,100, + 8,124,2,161,5,2,0,1,0,83,0,113,220,124,3,144, + 1,114,94,116,18,160,19,100,9,124,8,161,2,1,0,116, + 18,160,20,124,1,100,8,161,2,125,13,124,8,103,1,124, + 13,95,21,124,13,83,0,100,8,83,0,119,0,41,10,122, + 111,84,114,121,32,116,111,32,102,105,110,100,32,97,32,115, + 112,101,99,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,46,10,10,32, + 32,32,32,32,32,32,32,82,101,116,117,114,110,115,32,116, + 104,101,32,109,97,116,99,104,105,110,103,32,115,112,101,99, + 44,32,111,114,32,78,111,110,101,32,105,102,32,110,111,116, + 32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,32, + 70,114,86,0,0,0,114,45,0,0,0,114,116,0,0,0, + 114,223,0,0,0,122,9,116,114,121,105,110,103,32,123,125, + 41,1,90,9,118,101,114,98,111,115,105,116,121,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,41,22,114,55,0,0,0, + 114,63,0,0,0,114,58,0,0,0,114,19,0,0,0,114, + 70,0,0,0,114,22,1,0,0,114,64,0,0,0,114,83, + 1,0,0,218,11,95,102,105,108,108,95,99,97,99,104,101, + 114,22,0,0,0,114,86,1,0,0,114,117,0,0,0,114, + 85,1,0,0,114,54,0,0,0,114,82,1,0,0,114,68, + 0,0,0,114,77,1,0,0,114,71,0,0,0,114,146,0, + 0,0,114,160,0,0,0,114,194,0,0,0,114,189,0,0, + 0,41,14,114,130,0,0,0,114,150,0,0,0,114,213,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,180,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,30,1,0,0,114,199,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,198,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,214,0,0,0,183, + 5,0,0,115,80,0,0,0,4,5,14,1,2,1,24,1, + 14,1,6,1,10,1,8,1,6,1,6,2,6,1,10,1, + 6,2,4,1,8,2,12,1,14,1,8,1,10,1,8,1, + 24,1,2,255,8,5,14,2,16,1,16,1,14,1,10,1, + 10,1,4,1,8,255,2,128,6,2,12,1,12,1,8,1, + 4,1,4,1,2,219,255,128,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,0,0,0,0,9,0,0,0,10, + 0,0,0,67,0,0,0,115,190,0,0,0,124,0,106,0, + 125,1,122,22,116,1,160,2,124,1,112,22,116,1,160,3, + 161,0,161,1,125,2,87,0,110,24,4,0,116,4,116,5, + 116,6,102,3,121,188,1,0,1,0,1,0,103,0,125,2, + 89,0,116,7,106,8,160,9,100,1,161,1,115,78,116,10, + 124,2,131,1,124,0,95,11,110,74,116,10,131,0,125,3, + 124,2,68,0,93,56,125,4,124,4,160,12,100,2,161,1, + 92,3,125,5,125,6,125,7,124,6,114,130,100,3,160,13, + 124,5,124,7,160,14,161,0,161,2,125,8,110,4,124,5, + 125,8,124,3,160,15,124,8,161,1,1,0,113,88,124,3, + 124,0,95,11,116,7,106,8,160,9,116,16,161,1,114,184, + 100,4,100,5,132,0,124,2,68,0,131,1,124,0,95,17, + 100,6,83,0,100,6,83,0,119,0,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,15,0,0,0,114,86,0,0,0,114,76,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,4,0,0,0,83,0,0,0,115,20,0,0,0,104, + 0,124,0,93,12,125,1,124,1,160,0,161,0,146,2,113, + 4,83,0,114,7,0,0,0,41,1,114,117,0,0,0,41, + 2,114,5,0,0,0,90,2,102,110,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,13,0,0,0,4,6, + 0,0,115,4,0,0,0,20,0,255,128,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,58,0,0,0,114,19, + 0,0,0,90,7,108,105,115,116,100,105,114,114,70,0,0, + 0,114,71,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,16,0,0,0, + 114,26,0,0,0,114,27,0,0,0,114,84,1,0,0,114, + 85,1,0,0,114,112,0,0,0,114,77,0,0,0,114,117, + 0,0,0,218,3,97,100,100,114,28,0,0,0,114,86,1, + 0,0,41,9,114,130,0,0,0,114,58,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, + 56,1,0,0,114,128,0,0,0,114,40,1,0,0,114,30, + 1,0,0,90,8,110,101,119,95,110,97,109,101,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,88,1,0, + 0,231,5,0,0,115,40,0,0,0,6,2,2,1,22,1, + 18,1,6,3,12,3,12,1,6,7,8,1,16,1,4,1, + 18,1,4,2,12,1,6,1,12,1,20,1,4,255,2,233, + 255,128,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,0,0,0,0,3,0,0,0,3,0,0,0,7, + 0,0,0,115,18,0,0,0,135,0,135,1,102,2,100,1, + 100,2,132,8,125,2,124,2,83,0,41,4,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,0,0, + 0,0,1,0,0,0,4,0,0,0,19,0,0,0,115,36, + 0,0,0,116,0,124,0,131,1,115,20,116,1,100,1,124, + 0,100,2,141,2,130,1,136,0,124,0,103,1,136,1,162, + 1,82,0,142,0,83,0,41,4,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,62,0,0,0,78,41,2, + 114,71,0,0,0,114,129,0,0,0,114,62,0,0,0,169, + 2,114,209,0,0,0,114,87,1,0,0,114,7,0,0,0, + 114,8,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,16, + 6,0,0,115,8,0,0,0,8,2,12,1,16,1,255,128, + 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,78,114,7,0,0,0,41,3, + 114,209,0,0,0,114,87,1,0,0,114,93,1,0,0,114, + 7,0,0,0,114,92,1,0,0,114,8,0,0,0,218,9, + 112,97,116,104,95,104,111,111,107,6,6,0,0,115,6,0, + 0,0,14,10,4,6,255,128,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,0,0,0,0,1,0,0,0,3, + 0,0,0,67,0,0,0,114,53,1,0,0,41,2,78,122, + 16,70,105,108,101,70,105,110,100,101,114,40,123,33,114,125, + 41,41,2,114,77,0,0,0,114,58,0,0,0,114,8,1, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,54,1,0,0,24,6,0,0,114,47,1,0,0,122, + 19,70,105,108,101,70,105,110,100,101,114,46,95,95,114,101, + 112,114,95,95,41,1,78,41,15,114,137,0,0,0,114,136, + 0,0,0,114,138,0,0,0,114,139,0,0,0,114,223,0, + 0,0,114,64,1,0,0,114,154,0,0,0,114,217,0,0, + 0,114,148,0,0,0,114,77,1,0,0,114,214,0,0,0, + 114,88,1,0,0,114,221,0,0,0,114,94,1,0,0,114, + 54,1,0,0,114,7,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,80,1,0,0,137,5,0, + 0,115,26,0,0,0,8,0,4,2,8,7,8,14,4,4, + 8,2,8,12,10,5,8,48,2,31,10,1,12,17,255,128, + 114,80,1,0,0,99,4,0,0,0,0,0,0,0,0,0, + 0,0,6,0,0,0,8,0,0,0,67,0,0,0,115,144, + 0,0,0,124,0,160,0,100,1,161,1,125,4,124,0,160, + 0,100,2,161,1,125,5,124,4,115,66,124,5,114,36,124, + 5,106,1,125,4,110,30,124,2,124,3,107,2,114,56,116, + 2,124,1,124,2,131,2,125,4,110,10,116,3,124,1,124, + 2,131,2,125,4,124,5,115,84,116,4,124,1,124,2,124, + 4,100,3,141,3,125,5,122,38,124,5,124,0,100,2,60, + 0,124,4,124,0,100,1,60,0,124,2,124,0,100,4,60, + 0,124,3,124,0,100,5,60,0,87,0,100,0,83,0,4, + 0,116,5,121,142,1,0,1,0,1,0,89,0,100,0,83, + 0,119,0,41,6,78,218,10,95,95,108,111,97,100,101,114, + 95,95,218,8,95,95,115,112,101,99,95,95,114,81,1,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,151, + 0,0,0,114,27,1,0,0,114,21,1,0,0,114,201,0, + 0,0,218,9,69,120,99,101,112,116,105,111,110,41,6,90, + 2,110,115,114,128,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,151,0, + 0,0,114,198,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,218,14,95,102,105,120,95,117,112,95, + 109,111,100,117,108,101,30,6,0,0,115,38,0,0,0,10, + 2,10,1,4,1,4,1,8,1,8,1,12,1,10,2,4, + 1,14,1,2,1,8,1,8,1,8,1,14,1,12,1,6, + 2,2,254,255,128,114,99,1,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67, + 0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,0, + 102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,6, + 102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,2, + 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,78,41,7,114,17,1,0,0,114,174,0,0,0,218,18, + 101,120,116,101,110,115,105,111,110,95,115,117,102,102,105,120, + 101,115,114,21,1,0,0,114,113,0,0,0,114,27,1,0, + 0,114,101,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,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,195,0,0,0,53,6,0,0,115,10, + 0,0,0,12,5,8,1,8,1,10,1,255,128,114,195,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,1,0,0,0,67,0,0,0,115,8,0,0,0, + 124,0,97,0,100,0,83,0,114,121,0,0,0,41,1,114, + 146,0,0,0,41,1,218,17,95,98,111,111,116,115,116,114, + 97,112,95,109,111,100,117,108,101,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,218,21,95,115,101,116,95,98, + 111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,64, + 6,0,0,115,4,0,0,0,8,2,255,128,114,102,1,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,4,0,0,0,67,0,0,0,115,50,0,0,0,116, + 0,124,0,131,1,1,0,116,1,131,0,125,1,116,2,106, + 3,160,4,116,5,106,6,124,1,142,0,103,1,161,1,1, + 0,116,2,106,7,160,8,116,9,161,1,1,0,100,1,83, + 0,41,2,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,78,41, + 10,114,102,1,0,0,114,195,0,0,0,114,16,0,0,0, + 114,69,1,0,0,114,178,0,0,0,114,80,1,0,0,114, + 94,1,0,0,218,9,109,101,116,97,95,112,97,116,104,114, + 197,0,0,0,114,63,1,0,0,41,2,114,101,1,0,0, + 90,17,115,117,112,112,111,114,116,101,100,95,108,111,97,100, + 101,114,115,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,218,8,95,105,110,115,116,97,108,108,69,6,0,0, + 115,10,0,0,0,8,2,6,1,20,1,16,1,255,128,114, + 104,1,0,0,41,1,114,75,0,0,0,41,1,78,41,3, + 78,78,78,41,2,114,0,0,0,0,114,0,0,0,0,41, + 1,84,41,1,78,41,1,78,41,83,114,139,0,0,0,114, + 146,0,0,0,114,174,0,0,0,114,79,0,0,0,114,16, + 0,0,0,114,88,0,0,0,114,171,0,0,0,114,26,0, + 0,0,114,218,0,0,0,90,2,110,116,114,19,0,0,0, + 114,203,0,0,0,90,5,112,111,115,105,120,114,48,0,0, + 0,218,3,97,108,108,114,51,0,0,0,114,52,0,0,0, + 114,73,0,0,0,114,29,0,0,0,90,37,95,67,65,83, + 69,95,73,78,83,69,78,83,73,84,73,86,69,95,80,76, + 65,84,70,79,82,77,83,95,66,89,84,69,83,95,75,69, + 89,114,28,0,0,0,114,30,0,0,0,114,22,0,0,0, + 114,37,0,0,0,114,43,0,0,0,114,46,0,0,0,114, + 54,0,0,0,114,61,0,0,0,114,63,0,0,0,114,67, + 0,0,0,114,68,0,0,0,114,71,0,0,0,114,74,0, + 0,0,114,84,0,0,0,218,4,116,121,112,101,218,8,95, + 95,99,111,100,101,95,95,114,173,0,0,0,114,35,0,0, + 0,114,159,0,0,0,114,34,0,0,0,114,40,0,0,0, + 114,251,0,0,0,114,104,0,0,0,114,100,0,0,0,114, + 113,0,0,0,114,197,0,0,0,114,100,1,0,0,114,219, + 0,0,0,114,101,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,109, + 0,0,0,114,114,0,0,0,114,120,0,0,0,114,124,0, + 0,0,114,126,0,0,0,114,147,0,0,0,114,154,0,0, + 0,114,163,0,0,0,114,167,0,0,0,114,169,0,0,0, + 114,176,0,0,0,114,181,0,0,0,114,182,0,0,0,114, + 187,0,0,0,218,6,111,98,106,101,99,116,114,196,0,0, + 0,114,201,0,0,0,114,202,0,0,0,114,222,0,0,0, + 114,236,0,0,0,114,254,0,0,0,114,21,1,0,0,114, + 27,1,0,0,114,17,1,0,0,114,33,1,0,0,114,59, + 1,0,0,114,63,1,0,0,114,80,1,0,0,114,99,1, + 0,0,114,195,0,0,0,114,102,1,0,0,114,104,1,0, + 0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,8,60,109,111,100,117,108,101,62,1, + 0,0,0,115,172,0,0,0,4,0,4,22,8,3,8,1, + 8,1,8,1,8,1,10,3,4,1,8,1,10,1,8,2, + 4,3,10,1,6,2,22,2,8,1,10,1,14,1,4,4, + 4,1,2,1,2,1,4,255,8,4,6,16,8,3,8,5, + 8,5,8,6,8,6,8,12,8,10,8,9,8,5,8,7, + 10,9,10,22,0,127,16,26,12,1,4,2,4,1,6,2, + 6,1,10,1,8,2,6,2,8,2,16,2,8,71,8,40, + 8,19,8,12,8,12,8,31,8,17,8,33,8,28,10,24, + 10,13,10,10,8,11,6,14,4,3,2,1,12,255,14,68, + 14,64,16,30,0,127,14,17,18,50,18,45,18,25,14,53, + 14,63,14,47,0,127,14,20,0,127,10,22,8,23,8,11, + 12,5,255,128, }; diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 692442ac8c1b82..248f0cf9882103 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -165,8 +165,8 @@ static void *opcode_targets[256] = { &&TARGET_SET_UPDATE, &&TARGET_DICT_MERGE, &&TARGET_DICT_UPDATE, - &&_unknown_opcode, - &&_unknown_opcode, + &&TARGET_LOAD_METHOD_SUPER, + &&TARGET_LOAD_ATTR_SUPER, &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index e18ab0d873cce9..c2284e7c34369c 100755 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -358,7 +358,6 @@ def subclass_from_type(cls, t): # Handle any kind of error e.g. NULL ptrs by simply using the base # class return cls - #print('tp_flags = 0x%08x' % tp_flags) #print('tp_name = %r' % tp_name) @@ -370,6 +369,7 @@ def subclass_from_type(cls, t): 'frozenset' : PySetObjectPtr, 'builtin_function_or_method' : PyCFunctionObjectPtr, 'method-wrapper': wrapperobject, + 'wrapper_descriptor': wrapperdescrobject, } if tp_name in name_map: return name_map[tp_name] @@ -1401,6 +1401,24 @@ def write_repr(self, out, visited): proxy = self.proxyval(visited) out.write(proxy) +class wrapperdescrobject(PyObjectPtr): + _typename = 'wrapperdescrobject' + + def safe_name(self): + try: + name = self.field('d_base')['name'].string() + return repr(name) + except (NullPyObjectPtr, RuntimeError, UnicodeDecodeError): + return '' + + def proxyval(self, visited): + name = self.safe_name() + return ("" + % (name,)) + + def write_repr(self, out, visited): + proxy = self.proxyval(visited) + out.write(proxy) def int_from_int(gdbval): return int(gdbval) @@ -1439,7 +1457,7 @@ def pretty_printer_lookup(gdbval): type = type.target().unqualified() t = str(type) - if t in ("PyObject", "PyFrameObject", "PyUnicodeObject", "wrapperobject"): + if t in ("PyObject", "PyFrameObject", "PyUnicodeObject", "wrapperobject", "PyWrapperDescrObject"): return PyObjectPtrPrinter(gdbval) """ @@ -1573,7 +1591,6 @@ def is_other_python_frame(self): caller = frame.name() if not caller: return False - if (caller.startswith('cfunction_vectorcall_') or caller == 'cfunction_call'): arg_name = 'func' @@ -1603,6 +1620,17 @@ def is_other_python_frame(self): except RuntimeError: return '' % arg_name + if caller == 'wrapperdescr_call': + arg_name = 'descr' + try: + func = frame.read_var(arg_name) + return str(func) + except ValueError: + return ('' % arg_name) + except RuntimeError: + return '' % arg_name + # This frame isn't worth reporting: return False